Multi-perspective, multi-task neural network model for matching text to program code

ABSTRACT

Embodiments of the invention describe a computer-implemented method that includes receiving a query that includes a query sequence having query characters grouped into query words. A segment of program code is retrieved from a database for evaluation. The program code includes a program code sequence including program code characters grouped into program code words. The query sequence, the query word, the program code sequence, and the program code word are each converted to sequence and word representations. Query sequence-level features, query word-level features, program code sequence-level features, and program code word-level features are extracted from the sequence and word representation. Similarity between the query and the segment of program code is determined by applying a similarity metric technique to the query sequence-level features, the query word-level features, the program code sequence-level features, and the program code word-level features.

BACKGROUND

The present invention relates generally to programmable computersystems. More specifically, the present invention relates toprogrammable computer systems that implement a novel multi-perspective,multi-task neural network model trained to determine a level ofsimilarity between natural language text and computer program code, andvice versa. The multi-perspective aspects of the model can evaluateglobal or sequence-level interactions between code and text, as well aslocal or word-level interactions between code and text. The multi-taskaspects of the model can train different sub-models for different,related tasks in such a way that the sub-models share parameters orweights.

Natural language processing (NLP) is a field of computer scienceconcerned with developing algorithms and computer systems for theprocessing of human languages such as English. One application of NLP isnatural language interfaces to data repositories, including repositoriesof computer code. NLP systems have been developed to perform a varietyof text-searching and text-matching tasks at the interface between NLPand software engineering, including tasks such as code summarization,code generation, code retrieval, and code-text matching.

SUMMARY

Embodiments of the invention provide a computer-implemented method ofimplementing a neural network model trained to execute a first task thatincludes determining a level of similarity between a first text segmentand a second text segment. A non-limiting example of thecomputer-implemented method includes receiving, using a processor, aquery that includes the first text segment, wherein the first textsegment includes a first text segment (FTS) sequence that includes atleast one FTS character grouped into at least one FTS word. Based atleast in part on receiving the first text segment, the second textsegment is retrieved from a database, wherein the second text segmentincludes a second text segment (STS) sequence including at least one STScharacter grouped into at least one STS word. The FTS sequence isconverted to a FTS sequence representation, the at least one FTS word isconverted to at least one FTS word representation, the STS sequence isconverted to a STS sequence representation, and the at least one STSword is converted to at least one STS word representation. FTSsequence-level features are extracted from the FTS sequencerepresentation, FTS word-level features are extracted from the at leastone FTS word representation, STS sequence-level features are extractedfrom the STS sequence representation, and STS word-level features areextracted from the at least one STS word representation. Thecomputer-implemented method determines, using the processor, the levelof similarity between the first text segment and the second text segmentby applying a similarity metric technique to the FTS sequence-levelfeatures, the FTS word-level features, the STS sequence-level features,and the STS word-level features.

Embodiments of the invention are further directed to computer systemsand computer program products having substantially the same features asthe above-described computer-implemented method.

Additional features and advantages are realized through the techniquesdescribed herein. Other embodiments and aspects are described in detailherein. For a better understanding, refer to the description and to thedrawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The subject matter which is regarded as the present invention isparticularly pointed out and distinctly claimed in the claims at theconclusion of the specification. The foregoing and other features andadvantages are apparent from the following detailed description taken inconjunction with the accompanying drawings in which:

FIG. 1 depicts a simplified diagram of input and output connections of abiological neuron, which is a template for a deep-learning neuralnetwork architecture capable of implementing aspects of the invention;

FIG. 2 depicts a simplified diagram illustrating a mathematical modelinspired by the simplified biological neuron diagram shown in FIG. 1;

FIG. 3A depicts a simplified diagram illustrating a neural network layerarchitecture that incorporates the mathematical model shown in FIG. 2and is a basic neural network framework capable of implementing aspectsof the invention;

FIG. 3B depicts a diagram of an example word embedding in accordancewith aspects of the invention;

FIG. 4 depicts a block diagram of a computer-based code-text analysissystem embodying aspects of the invention;

FIG. 5A depicts a flow diagram illustrating a method that can beimplemented by the code-text analysis system shown in FIG. 4 inaccordance with aspects of the invention;

FIG. 5B depicts a diagram illustrating example implementations of thequery sequence representations, query token/word representations,database entry (DBE) sequence representations, and DBE token/wordrepresentations of the method shown in FIG. 5A;

FIG. 5C depicts a flow diagram illustrating a method that can beimplemented by the code-text analysis system shown in FIG. 4 inaccordance with aspects of the invention;

FIG. 6 depicts a series of block diagrams each illustrating an exampleimplementation of the classification/similarity algorithms and code/textrelationship models of the code-text analysis system shown in FIG. 4;

FIG. 7A depicts a flow diagram illustrating example operations of thecode-text analysis system and classification/similarity algorithms shownin FIGS. 4 and 6 according to embodiments of the invention;

FIG. 7B depicts a flow diagram illustrating example operations of thecode-text analysis system and classification/similarity algorithms shownin FIGS. 4 and 6 according to embodiments of the invention;

FIG. 7C depicts a flow diagram illustrating example operations of thecode-text analysis system and classification/similarity algorithms shownin FIGS. 4 and 6 according to embodiments of the invention;

FIG. 7D depicts a flow diagram illustrating example operations of thecode-text analysis system and classification/similarity algorithms shownin FIGS. 4 and 6 according to embodiments of the invention;

FIG. 8 depicts a block diagram illustrating an example implementation ofthe multi-perspective code-text matching (MP-CTM) model shown in FIG. 6;

FIG. 9 depicts a block diagram illustrating an example implementation ofthe multi-task (MT) learning/training function/module shown in FIG. 6;

FIG. 10 depicts equations used in accordance with aspects of theinvention;

FIG. 11 depicts a table illustrating code/description pairs used in anexperimental implementation of embodiments of the invention;

FIG. 12A depicts tables that summarize the results achieved usingexperimental implementations of embodiments of the invention;

FIG. 12B depicts results returned using experimental implementations ofembodiments of the invention; and

FIG. 13 depicts a computer system capable of implementing aspects of theinvention.

In the accompanying figures and following detailed description of thedisclosed embodiments, the various elements illustrated in the figuresare provided with three digit reference numbers. The leftmost digit ofeach reference number corresponds to the figure in which its element isfirst illustrated.

DETAILED DESCRIPTION

For the sake of brevity, conventional techniques related to making andusing aspects of the invention may or may not be described in detailherein. In particular, various aspects of computing systems and specificcomputer programs to implement the various technical features describedherein are well known. Accordingly, in the interest of brevity, manyconventional implementation details are only mentioned briefly herein orare omitted entirely without providing the well-known system and/orprocess details.

Many of the functional units described in this specification have beenlabeled as modules. Embodiments of the present invention apply to a widevariety of module implementations. For example, a module can beimplemented as a hardware circuit comprising custom VLSI circuits orgate arrays, off-the-shelf semiconductors such as logic chips,transistors, or other discrete components. A module can also beimplemented in programmable hardware devices such as field programmablegate arrays, programmable array logic, programmable logic devices or thelike. A modules can also be implemented in software for execution byvarious types of processors. An identified module of executable codecan, for instance, include one or more physical or logical blocks ofcomputer instructions which can, for instance, be organized as anobject, procedure, or function. Nevertheless, the executables of anidentified module need not be physically located together, but caninclude disparate instructions stored in different locations which, whenjoined logically together, comprise the module and achieve the statedpurpose for the module.

Turning now to a more detailed description of technologies related toaspects of the invention, computers can be used to evaluate therelationship between a first text segment and a second text segment. Forexample, matching a piece or segment of code (i.e., a first textsegment) to its corresponding piece or segment of natural language text(i.e., a second text segment), and vice versa, is a fundamental functionof a natural language search system configured to interface user queriesto a software and/or text repository. One example of such a code segmentis known generally as a code “snippet.” Code snippets are small, piecesof re-usable source code or machine code that can be integrated into alarger codebase. Code snippets generally have certain functions thatoperate in a larger and more complicated program. In general, the terms“natural language” refer to language that has been developed by humansover time as a method of communicating between people, rather thanlanguage that has been created for communication between non-humanentities such as computers.

As previously noted herein, NLP systems can perform a variety oftext-searching and text-matching tasks at the interface between NLP andsoftware engineering. Such tasks include, for example, codesummarization, code generation, code retrieval, and code-text matching.In code summarization, or code-to-language translation, source code ismapped to a natural language summary or description of that code. Incode generation, or language-to-code-translation, natural languageinstructions are translated to code snippets that perform the taskspecified by the input instructions. In code retrieval, a user providesa natural language query, and the system returns a ranked list ofrelevant snippets from a code database or repository. Code-text matchingis a binary classification task, wherein the system determines that asegment of program code is described by a segment of natural languagetext. Among the challenges in performing the above-described searchingand matching tasks in NLP systems is enabling computers to translatenatural language inputs into a meaningful representation for furtherprocessing, as well as enabling computers to effectively and efficientlygenerate meaningful and useful natural language outputs. The searchingand matching tasks are even more challenging when the natural languageinputs and/or outputs are in the form of computer program code, and whennatural language inputs (or outputs) need to be mapped to computer codeoutputs (or inputs).

Turning now to an overview of aspects of the present invention,embodiments of the invention provide computer-implemented methods,computer systems and computer program products configured and arrangedto evaluate and determine the relationship between a first text segmentand a second text segment. More specifically, embodiments of theinvention provide a programmable computer system having a novelclassification/similarity algorithm that implements a novelmulti-perspective, multi-task neural network model trained to determinea level of similarity between a segment of natural language text and asegment of computer program code, and vice versa. The multi-perspectiveaspects of the model can evaluate global (or sequence-level)interactions between code and text, as well as local (or word-level)interactions between code and text. The multi-task aspects of the modelcan train different sub-models for different, related tasks in such away that the sub-models share parameters. In accordance with aspects ofthe invention, these parameters are the sets of weights that determinethe connection strengths between pairs of nodes in themulti-perspective, multi-task model of the classification/similarityalgorithm (or neural network). Two models that share parts of theirarchitecture (e.g. a subset of layers) have shared parameters if theyuse the same sets of weights for some or all of the layers in the sharedarchitecture. The different, related tasks can include matching code andtext; translating from code to text; translating from text to code; andthe like.

In aspects of the invention, the first text segment can be a segment ofprogram code (C), and the second text segment can be a segment ofdescriptive natural language text (D). In embodiments of the invention,the above-described novel classification/similarity algorithm is furtherconfigured to evaluate and determine the C/D relationship. In someembodiments of the invention, the C/D relationship that is evaluated anddetermined is the level of semantic similarity between C and D. In someembodiments of the invention, the C/D relationship that is evaluated anddetermined is the likelihood that D describes C. In some embodiments ofthe invention, the C/D relationship that is evaluated and determined isthe likelihood that C is described by D. In some embodiments of theinvention, the novel classification/similarity algorithm can beconfigured to evaluate and determine the C/D relationship by applying asimilarity technique (e.g., computing similarities) with confidencelevels (CLs) to C and D.

In embodiments of the invention, the novel classification/similarityalgorithm translates C and D into representations that can be recognizedand manipulated by the model of the neural network. In aspects of theinvention, the representations can be numerical data such as tokens,vectors, and the like. C and D are each a sequence of individualcharacters, and the sequence of individual characters includessub-sequences of characters that, taken together, can convey usefulsemantic meaning. A token is an instance of one or more characters inthe sequence that are grouped together in a sub-sequence or a single“word.” A “type” is the class of all tokens containing the samecharacter sequence. “Tokenization” is taking C or D and breaking it intoits individual words. These tokens are then used as the inputs for othertypes of downstream neural network analysis or tasks such aspre-processing, vectorization, word embeddings, and feature extraction.

In embodiments of the invention, tokenized C and D can be pre-processedusing sub-word regularization techniques. In a suitable sub-wordregularization technique, smaller components of words are identified,and these smaller components serve as elementary inputs to the neuralnetwork. Because the identified smaller components typically occur withhigher frequency in the training data than complete words, sub-wordregularization techniques reduce the number of elementary inputs to theneural network, thereby reducing the volume of training data.

Neural network models take vectors (i.e., an array of numbers) asinputs. Token/word vectorization refers to techniques that extractinformation from a text corpus and associate to each word of the textcorpus a vector. For example, the word “king” can be associated with thevector (1, 4, −3, 2). This value can be computed using a suitablevectorization algorithm that takes into account the word's context.

Word embeddings are a way to use an efficient, dense vector-basedrepresentation in which similar words have a similar encoding. Ingeneral, an embedding is a dense vector of floating point values. Anembedding is an improvement over the more traditional bag-of-word modelencoding schemes where large sparse vectors are used to represent eachword or to score each word within a vector to represent an entirevocabulary. Such representations are considered to be sparse because thevocabularies can be vast, and a given word or document would berepresented by a large vector having mostly zero token values. Instead,in an embedding, words are represented by dense vectors where a vectorrepresents the projection of the word into a continuous vector space.The length of the vector is a parameter that must be specified. However,the values of the embeddings are trainable parameters (i.e., weightslearned by the model during training in the same way a model learnsweights for a dense layer). More specifically, the position of a wordwithin the vector space of an embedding is learned from text and isbased on the words that surround the word when it is used. The positionof a word in the learned vector space of the word embedding is referredto as its embedding. Small datasets can have word embeddings that are assmall as 8-dimensional, while larger datasets can have word embeddingsas large as 1024-dimensions. A higher dimensional embedding can capturefine-grained relationships between words but takes more data to learn.

FIG. 3B depicts an example diagram of a word embedding 330. As shown inFIG. 3B, each word is represented as a 4-dimensional vector of floatingpoint values. Another way to think of the word embedding 330 is as“lookup table.” After the weights have been learned, each word can beencoded by looking up the dense vector it corresponds to in the table.The Embedding layer (or lookup table) maps from integer indices (whichstand for specific words) to dense vectors (their embeddings). Thedimensionality (or width) of the embedding is a parameter that can beselected to match the task for which it is designed. When an embeddinglayer is created, the weights for the embeddings are randomlyinitialized (just like any other layer). During training, the weightsare gradually adjusted via backpropagation. Once trained, the learnedword embeddings will roughly encode similarities between words (as theywere learned for the specific problem on which the model is trained).

Feature extraction techniques are used to reduce the number of resourcesrequired to describe a large set of data. Performing analysis of complexdata can increase in difficulty as the number of variables involvedincreases. Analyzing a large number of variables generally requires alarge amount of memory and computation power. Additionally, having alarge number of variables can also cause a classification algorithm toover-fit to training samples and generalize poorly to new samples.Feature extraction is a general term for methods of constructingcombinations of the variables in order to work around these problemswhile still describing the data with sufficient accuracy.

The above-described neural network processes (e.g., vectorization, wordembeddings, and feature extraction) are applied to the representationsto, in effect, “learn” a novel C/D model that represents (or models) therelationship (e.g., semantic similarity) between C and D. When the novelC/D model is sufficiently trained, new C/D pairs can be applied to thenovel C/D model to output a variety of determinations about therelationship between C and D, including, for example, the level ofsemantic similarity between C and D, the likelihood that D describes C,and the likelihood that C is described by D.

In some embodiments of the invention, the novel C/D model can beconfigured to include one or more input layers, one or more outputlayers, and multiple hidden layers between the input/output layers. Inembodiments of the invention, design of the novel C/D model begins bydefining a baseline model. In general, a baseline model is a relativelysimple model from which the novel C/D model can be built. The baselinemodel can also be used as a comparison with the novel C/D model to testthe quality of the novel C/D model's results.

In embodiments of the invention, the baseline model of the novel C/Dmodel can be a code-text matching (CTM) model having hidden layers thatinclude a word embedding layer (or layers), a context representationlayer (or layers), and a max pooling layer (or layers). These CTM hiddenlayers receive tokenized C and D and map the C tokens and the D tokensinto a joint embedding space. The CTM model contains two sets of theabove-described hidden layers—one set for the sequence of C tokens, andthe other set for the sequence of D tokens. The CTM model uses asimilarity metric technique to determine the level of correlationbetween the C/D vector pairs output from the CTM hidden layers. Ingeneral, there are a variety of similarity metric techniques that can beused to determine the similarity between two things. A similarity scorecan be developed by quantifying different attributes of data objectsthen employing different similarity algorithms across those attributesto yield similarity scores between the different data objects. Inembodiments of the invention, the similarity metric technique can be acosine similarity technique configured to compute the cosine similarityof C/D vector pairs output from the CTM hidden layers. Using thebaseline CTM model, semantically similar C/D pairs are projected tovectors that are close to each other, thereby generating a global-levelsimilarity evaluation of the C/D pair.

In embodiments of the invention, the baseline CTM model of the novel C/Dmodel can be implemented as a code, abstract syntax tree (AST), and text(CAT) model. In embodiments of the invention, the CAT model uses thesame layer architecture as the baseline CTM model, but the CAT model'slayer architecture is augmented to include features extracted from anAST representation of C in order to learn syntactic C features inparallel with the semantic C features. The AST representation of Crepresents the syntactical elements of C in a hierarchical treestructure. The tree of the AST representation focuses on the rules anddoes not include elements like brackets or semicolons that terminatestatements in some languages. The tree is hierarchical, and the elementsof programming statements are broken down into their parts. The CATmodel's layer architecture is configured to concatenate the semantic Cvectors and the syntactic (or AST) C vectors into a single embeddingthen apply a similarity metric technique (e.g., a cosine similaritytechnique) to the semantic/AST C vectors and the D vectors. Thus, theCAT model's layer architecture includes the same three hidden layers asthe baseline CTM model except the CAT model's layer architecturecontains three sets of the three hidden layers, namely, one each forembedding the semantic C sequence, the syntactic C-AST sequence, and thesemantic D sequence. Although a variety of suitable known AST techniquescan be used to compute the AST representation, aspects of the inventionsimplify the AST representation using any suitable simplificationtechnique that has been configured to make the AST representation lessverbose while still capturing all of the relevant information. Infurther aspects of the invention, this simplified version of the ASTrepresentation is flattened to a string then used along with the rawcode (e.g., the code sequence inputs shown in FIG. 8) to create coderepresentations. The features representing both raw code and AST wouldbe stored inside DBE sequence representations (e.g., DBE TS embeddings564C in FIG. 5B). FIG. 8 depicts code sequence inputs and AST sequenceinputs both being fed into the MP-CTM model 436C′, as well as depictingembeddings being concatenated to form joint code/AST representations.

In embodiments of the invention, the baseline CTM model of the novel C/Dmodel is further evolved to provide a multi-perspective CTM (MP-CTM)model. In embodiments of the invention, the MP-CTM model uses the samelayer architecture as the CAT model (or, optionally, just the baselineCTM model) but also includes a novel bilateral multi-perspectivematching (BiMPM) layer. Known approaches to BiMPM use it to computesimilarities over pairs of sentences from the same language. Incontrast, aspects of the invention apply BiMPM cross-linguistically(e.g., across natural language text and computer program code) to assesssimilarity of D and C. Additionally, known approaches to BiMPM use it asa binary classification algorithm. In contrast, aspects of the inventiontake the vectors computed by BiMPM, concatenate them with vectorscomputed by the CAT model, and compute a cosine similarity of thesevectors for C and D. In further contrast to known BiMPM models, aspectsof the invention utilize a novel Bi-MPM layer configured to take intoaccount not only high-level features of code and text but also low-levelfeatures of semantic code (and, optionally, syntactic (AST) code) andtext descriptions. Thus, in addition to the global similarity determinedin the baseline CTM model portion of the MP-CTM model, the novel BiMPMlayer captures local similarities between C and D. Accordingly, thenovel MP-CTM model takes into account not only high-level features ofsemantic C representations, syntactic (AST) C representations(optionally), and D representations, but also takes into accountlow-level features of semantic C representations, syntactic (AST) Crepresentations (optionally), and D representations. In embodiments ofthe invention, the MP-CTM model's hidden layer architecture includes araw representation layer, a context representation layer, a global-levelsequence aggregation layer, the novel BiMPM Layer, a global and localfusing layer, and a final similarity prediction layer.

In some embodiments of the invention, MP-CTM model is further evolved toprovide the novel C/D model as an enhanced version of the MP-CTM modelconfigured to utilize a multi-task (MT) learning/training function (ormodule) that incorporates within the MP-CTM model differentfunctions/modules with shared parameters. The MT learning/trainingaspects of the enhanced MP-CTM model can train different sub-models fordifferent, related tasks in such a way that the sub-models shareparameters. In accordance with aspects of the invention, these sharedparameters are the sets of weights that determine the connectionstrengths between pairs of nodes in a neural network. Two models thatshare parts of their architecture (e.g. a subset of layers) have sharedparameters if they use the same sets of weights for some or all of thelayers in the shared architecture. In embodiments of the invention, thedifferent, related tasks can include matching code and text; translatingfrom code to text; translating from text to code; and the like. By usingthe different modules with shared parameters to focus on differenttasks, the enhanced MP-CTM model's layer architecture can be used tolearn a more general model that performs better over these individualtasks than if the different frameworks had been shared separately. Inembodiments of the invention, the main task is code-text matching, andthe different tasks having shared parameters include the main task ofmatching source code and natural language, along with the related tasksof translating source code to natural language, and the related task oftranslating natural language to source code. The main task and therelated tasks are closely related because they all require the abilityto capture whether a piece of natural language describes a piece ofcode. Incorporating the MT learning/training module results in theenhanced MP-CTM model being a more general model that performs betterover the individual tasks.

In aspects of the invention, the novel C/D model'sclassification/similarity algorithms can be configured to applyconfidence levels (CLs) to various ones of their results/determinations(e.g., the previously-described similarity score) in order to improvethe overall accuracy of the particular result/determination. When thenovel C/D model makes a determination or generates a result (e.g., asimilarity score between C and D) for which the value of CL is below apredetermined threshold (TH) (i.e., CL<TH), the result/determination canbe classified as having sufficiently low “confidence” to justify aconclusion that the determination/result is not valid. If CL>TH, thedetermination/result can be considered valid and thedetermination/result can participate in downstream processing. Manydifferent predetermined TH levels can be provided. Thedeterminations/results with CL>TH can be ranked from the highest CL>THto the lowest CL>TH in order to prioritize when, how and if thedeterminations/results are handled in downstream processing.

Accordingly, the above-described embodiments of the novel C/D modelimprove the ability of computers to determine the relationship betweennatural language text and computer program code, as well as the abilityof computers to effectively and efficiently generate natural languageoutputs that communicate the nature of the determined relationship(e.g., the likelihood that the natural language text describes thecomputer program code). In embodiments of the invention, the improvedability of computers to determine the relationship between naturallanguage text and computer program code can be accomplished by providinga multi-task, multi-perspective neural network architecture thatcaptures both global (whole input level) and local (multi-perspective)features of the code and natural language description pair.Additionally, the above-described embodiments of the novel C/D modelfurther improve the ability of computers to determine the relationshipbetween natural language text and computer program code, as well as theability of computers to effectively and efficiently generate naturallanguage outputs that communicate the nature of the determinedrelationship (e.g., the likelihood that the natural language textdescribes the computer program code), by exploiting the related natureof code-text matching, code summarization and code generation to inducerepresentations jointly for all tasks, thereby improving the novel C/Dmodel's performance on matching and code retrieval.

Turning now to a more detailed description of aspects of the invention,FIGS. 1-3A depict various features of a neural network architecture 300(shown in FIG. 3A) capable of implementing aspects of the invention.More specifically, FIG. 1 depicts a simplified diagram of input andoutput connections 112, 114, 116, 118 of a biological neuron 102, whichprovides a template for the neural network architecture 300. A normaladult human brain includes about one hundred billion interconnectedneurons. FIG. 2 depicts a simplified model of the biological neuron 102shown in FIG. 1. FIG. 3A depicts the simplified neural network layerarchitecture 300 that incorporates the biological neuron model shown inFIG. 2.

Turning to FIG. 1, there is depicted a simplified diagram of thebiological neuron 102 having pathways 104, 106, 108, 110 that connect itto upstream the inputs 112, 114, downstream outputs 116 and downstream“other” neurons 118, configured and arranged as shown. Each biologicalneuron 102 sends and receives electrical impulses through pathways 104,106, 108, 110. The nature of these electrical impulses and how they areprocessed in biological neuron 102 are primarily responsible for overallbrain functionality. The pathway connections 104, 106, 108, 110 betweenthe biological neurons 102, 118 can be strong or weak. When the neuron102 receives input impulses, the neuron 102 processes the inputaccording to the neuron's function and sends the result of the functionon pathway 108 to downstream outputs 116 and/or on pathway 110 todownstream “other” neurons 118.

In FIG. 2, biological neuron 102 is modeled as a node 202 having amathematical function, f(x) depicted by the equation shown in FIG. 2.Node 202 takes electrical signals from inputs 212, 214, multiplies eachinput 212, 214 by the strength of its respective connection pathway 204,206, takes a sum of the inputs, passes the sum through a function, f(x),and generates a result 216, which may be a final output or an input toanother node, or both. In the present specification, an asterisk (*) isused to represent a multiplication. Weak input signals are multiplied bya very small connection strength number, so the impact of a weak inputsignal on the function is very low. Similarly, strong input signals aremultiplied by a higher connection strength number, so the impact of astrong input signal on the function is larger. The function f(x) is adesign choice, and a variety of functions can be used. A typical designchoice for f(x) is the hyperbolic tangent function, which takes thefunction of the previous sum and outputs a number between minus one andplus one.

FIG. 3A depicts a simplified neural network architecture (or model) 300.In general, neural networks can be implemented as a set of algorithmsrunning on a programmable computer (e.g., computer systems 1300, 1300Ashown in FIGS. 4A and 11). In some instances, neural networks areimplemented on an electronic neuromorphic machine (e.g., the IBM®/DARPASyNAPSE computer chip) that attempts to create connections betweenprocessing elements that are substantially the functional equivalent ofthe synapse connections between brain neurons. In either implementation,neural networks incorporate knowledge from a variety of disciplines,including neurophysiology, cognitive science/psychology, physics(statistical mechanics), control theory, computer science, artificialintelligence, statistics/mathematics, pattern recognition, computervision, parallel processing and hardware (e.g.,digital/analog/VLSI/optical). The basic function of a neural network isto recognize patterns by interpreting unstructured sensory data througha kind of machine perception. Unstructured real-world data in its nativeform (e.g., images, sound, text, or time series data) is converted to anumerical form (e.g., a vector having magnitude and direction) that canbe understood and manipulated by a computer. The neural network performsmultiple iterations of learning-based analysis on the real-world datavectors until patterns (or relationships) contained in the real-worlddata vectors are uncovered and learned.

Although the patterns uncovered/learned by a neural network can be usedto perform a variety of tasks, two of the more common tasks are labeling(or classification) of real-world data and determining the similaritybetween segments of real-world data. Classification tasks often dependon the use of labeled datasets to train the neural network to recognizethe correlation between labels and data. This is known as supervisedlearning. Examples of classification tasks include detectingpeople/faces in images, recognizing facial expressions (e.g., angry,joyful, etc.) in an image, identifying objects in images (e.g., stopsigns, pedestrians, lane markers, etc.), recognizing gestures in video,detecting voices, detecting voices in audio, identifying particularspeakers, transcribing speech into text, the like. Similarity tasksapply similarity techniques and (optionally) confidence levels (CLs) todetermine a numerical representation of the similarity between a pair ofitems.

Returning to FIG. 3A, the simplified neural network architecture/model300 is organized as a weighted directed graph, wherein the artificialneurons are nodes (e.g., 302, 308, 316), and wherein weighted directededges (e.g., m1 to m20) connect the nodes. ANN model 300 is organizedsuch that nodes 302, 304, 306 are input layer nodes, nodes 308, 310,312, 314 are hidden layer nodes, and nodes 316, 318 are output layernodes. Each node is connected to every node in the adjacent layer byconnection pathways, which are depicted in FIG. 3A as directional arrowshaving connection strengths m1 to m20. Although only one input layer,one hidden layer and one output layer are shown, in practice, multipleinput layers, multiple hidden layers and multiple output layers can beprovided. When multiple hidden layers are provided, the neural network300 can perform unsupervised deep-learning for executingclassification/similarity type tasks.

Similar to the functionality of a human brain, each input layer node302, 304, 306 of the neural network 300 receives inputs x1, x2, x3directly from a source (not shown) with no connection strengthadjustments and no node summations. Accordingly, y1=f(x1), y2=f(x2) andy3=f(x3), as shown by the equations listed at the bottom of FIG. 3A.Each hidden layer node 308, 310, 312, 314 receives its inputs from allinput layer nodes 302, 304, 306 according to the connection strengthsassociated with the relevant connection pathways. Thus, in hidden layernode 308, y4=f(m1*y1+m5*y2+m9*y3), wherein * represents amultiplication. A similar connection strength multiplication and nodesummation is performed for hidden layer nodes 310, 312, 314 and outputlayer nodes 316, 318, as shown by the equations defining functions y5 toy9 depicted at the bottom of FIG. 3A.

The neural network model 300 processes data records one at a time, andit “learns” by comparing an initially arbitrary classification of therecord with the known actual classification of the record. Using atraining methodology knows as “backpropagation”(i.e., “backwardpropagation of errors”), the errors from the initial classification ofthe first record are fed back into the network and used to modify thenetwork's weighted connections the second time around, and this feedbackprocess continues for many iterations. In the training phase of a neuralnetwork, the correct classification for each record is known, and theoutput nodes can therefore be assigned “correct” values. For example, anode value of “1” (or 0.9) for the node corresponding to the correctclass, and a node value of “0” (or 0.1) for the others. It is thuspossible to compare the network's calculated values for the output nodesto these “correct” values, and to calculate an error term for each node(i.e., the “delta” rule). These error terms are then used to adjust theweights in the hidden layers so that in the next iteration the outputvalues will be closer to the “correct” values.

There are many types of neural networks, but the two broadest categoriesare feed-forward and recurrent networks. The neural network model 300 isa non-recurrent feed-forward network having inputs, outputs and hiddenlayers. The signals can only travel in one direction. Input data ispassed onto a layer of processing elements that perform calculations.Each processing element makes its computation based upon a weighted sumof its inputs. The new calculated values then become the new inputvalues that feed the next layer. This process continues until it hasgone through all the layers and determined the output. A thresholdtransfer function is sometimes used to quantify the output of a neuronin the output layer.

FIG. 4 depicts a block diagram of a code-text analysis system 400embodying aspects of the invention. The code-text analysis system 400includes a computer system 1300 communicatively coupled to a database410. The database 410 stores or otherwise has access to real-world datathat can include program code segments (e.g., code snippets) 412 andnatural language text segments 414. The program code 412 and the naturallanguage text segments 414 are shown in a single database 410 for easeof illustration. In some embodiments of the invention, the program code412 can be stored in a database that is separate from the database thatstores the natural language text segments 414. In some embodiments ofthe invention, the program code 412 can be spread among multipleseparate databases, and the natural language text segments 414 can bespread among multiple separate databases. In some embodiments of theinvention, the program code 412 and the natural language text segments414 are stored such that the relationships, if any, between the programcode 412 and the natural language text segments is not captured by thestructure of the database 410 and/or is not known to the computer system1300. In embodiments of the invention where the performance of thecode-text analysis system 400 is being tested, the relationship betweenthe program code 412 and the natural language text segments 414 areknown (e.g., code/descriptions pairs 1100 shown in FIG. 11) and can beused to evaluate the accuracy of the analysis that is performed by thecode-text analysis system 400 to uncover or learn the relationshipsbetween the program code 412 and the natural language text segments 414.

The computer system 1300 implements a neural network having inputlayers, hidden layers, output layers, nodes, and weighted connections(e.g., as shown in FIGS. 5A-9) that operate in accordance with thegeneral functionality of the neural network 300 (shown in FIG. 3A) andthat further includes natural language processing algorithms 432, novelclassification/similarity algorithms 434, and novelclassification/similarity models 436 configured and arranged as shown.It is noted that the previously-described novel C/D model is an exampleimplementation of the novel classification/similarity model 436 shown inFIG. 4. In operation, the natural language processing algorithms 432,the novel classification/similarity algorithms 434, and the novelclassification/similarity models 436 work together to train/learn thenovel classification/similarity model 436 in accordance with aspects ofthe invention.

In operation, the computer system 1300 receives user inputs 421 from auser 420. In aspects of the invention, the user inputs 421 include auser query 422. In response to receiving the user query 422, thecomputer system 1300 is configured to access the database 410 toretrieve and analyze program code 412 and/or natural language textsegments 414 to determine the program code 412 and/or natural languagetext segments 414 that are responsive to the user query 422. In aspectsof the invention, the user query 422 is about the relationship betweenthe subject of the user query 422 (e.g., a segment of program codesnippet or a segment of natural language text) and the program code 412or the natural language text segments 414 stored in the database 410. Insome aspects of the invention, the substance of the user query 422 is toprovide feedback on the specific nature of the relationship between thesubject of the user query 422 and the program code 412 or the naturallanguage text segments 414 stored in the database 410. For example, insome embodiments of the invention, the substance of the user query 422is a request to determine how semantically similar a given segment ofprogram code is to the natural language text segments 414 stored in thedatabase 410. In some embodiments of the invention, the substance of theuser query 422 is a request to determine the likelihood that a givennatural language text segment describes one or more segments of theprogram code 412 stored in the database 410. In some embodiments of theinvention, the substance of the user query 422 is a request to determinethe likelihood that a given segment of program code is described by oneor more of the natural language text segments 414 stored in the database410.

In embodiments of the invention where the substance of the user query422 is a request to determine and rank the level of semantic similaritybetween a given segment of program code (or a given segment of naturallanguage text) and the natural language text segments 414 (or theprogram code 412) stored in the database 410, the natural languageprocessing algorithms 432, novel classification/similarity algorithms434, and novel classification/similarity models 436 work together toanalyze the program code 412 and/or the natural language text segments414 to determine the program code and natural language text segmentsthat are responsive to the user query 422. The analysis performed by thenatural language processing algorithms 432, novelclassification/similarity algorithms 434, and novelclassification/similarity models 436 includes translating the programcode 412 and the natural language text segments 414 to numerical data(e.g., tokens, vectors, and the like), optionally pre-processing thetokenized program code and natural language text with sub-wordregularization, and applying a series of novel hidden-layer processes tothe numerical data that, in effect, “learn” or “train” the novelclassification/similarity model 436 so that it represents (or models)the substance of the user query 422, which, in embodiments of theinvention, is a determination of the level of semantic similaritybetween pairs of a given program code and the natural language textsegments 414 stored in the database 410, or the level of semanticsimilarity between pairs of a given natural language text segment and asegment of the program code 412 stored in the database 410. When theimproved classification/similarity model 436 is sufficiently trained,new user queries 422 and retrieved program code 412 and/or naturallanguage text segments 414 can be applied to the novelclassification/similarity model 436 to determine the level of semanticsimilarity between the user query 422 and the retrieved program code 412and the natural language text segments 414. In some aspects of theinvention, the new user queries 422 and program code 412 and/or naturallanguage text segments 414 can include the same program code and naturallanguage text segments that were used to train the novelclassification/similarity model 436. In some aspects of the invention,the user queries 422 and the retrieved program code 412 and/or naturallanguage text segments 414 can be different from the user queries,program code, and/or natural language text segments that were used totrain the novel classification/similarity model 436.

In embodiments of the invention where the substance of the user query422 is to determine the likelihood that a given natural language textsegments describes a segment of the program code 412 stored in thedatabase 410, the same processes described above are used except thenovel classification/similarity model 436 is trained to represent (ormodel) the likelihood that a given one of the natural language textsegments describes a segment of the program code 412 stored in thedatabase 410.

In embodiments of the invention where the substance of the user query422 is to determine the likelihood that a given segment of program codeis described by one of the natural language text segments 414 stored inthe database 410, the same processes described above are used except thenovel classification/similarity model 436 is trained to represent (ormodel) the likelihood that a given segment of program code is describedby one of the natural language text segments 414 stored in the database410.

The computer system 1300 generates an output 450 in a flexible formatand structure that captures the relationship between user queries 422and either the retrieved program code segments 412 or the naturallanguage text segments 414 that are responsive to the user query 422.The format of the output 450 shown in FIG. 4 is a table that matches thecode or text that is the subject (i.e., the known portion) of the userquery 422 to a ranked listing of the program code 412 or naturallanguage text segment 414 that is responsive to the substance of theuser query 422 (e.g., semantic similarity between program code andnatural language text). The specific format and structure of the output450 is one example, and the code-text analysis system 400 can beprogrammed to generate the output 450 in other formats and structuresthat match the specific user query 422 and the specific embodiment ofthe classification/similarity algorithm 434 (e.g.,classification/similarity algorithms 434A, 434B shown in FIG. 6) thatare being used.

In embodiments of the invention, the user inputs 421 can also includeuser training feedback 424 from the user 420. The user training feedback424 can be generated by the user 420 based on a review by the user 420of the output 450. In embodiments of the invention, the format of theoutput 450 can include a user feedback region where the user 420 canelectronically enter user feedback about one or more of the code/textpairs in the returned output 450. The computer system 1300 can receivethe user training feedback 424 through a user feedback region that canbe made part of the format of the output 450. The computer system 1300can be configured to provide the user training feedback 424 to theclassification/similarity algorithms 434, which are configured to usethe user training feedback 424 (e.g., through making the appropriateadjustments to the weights used in the classification/similarity model436) to further train the classification/similarity models 436. In someembodiments of the invention, the output 450 can include anautomatically generated dialogue box that is displayed to the user 420(e.g., through the input/output component 1312 shown in FIG. 13) and isconfigured to prompt the user 420 to provide the user training feedback424 in the user feedback region of the output 450. In embodiments of theinvention, the user training feedback 424 can identify the code/textpairs returned by the classification/similarity model 436 where theprogram code and the text in the returned code/text pair are relevant toone another. In embodiments of the invention, the user training feedback424 can identify the code/text pairs returned by theclassification/similarity model 436 where the program code and the textreturned in the code/text that are not relevant to one another. Inembodiments of the invention, the user training feedback 424 canidentify the code/text pairs returned by the classification/similaritymodel 436 where the program code and the text in the code/text pair arerelevant to one another, along with identifying the code/text pairsreturned by the classification/similarity model 436 wherein the programcode and the text in the code/text pair are not relevant to one another.In some embodiments of the invention, the user training feedback 424 canbe provided on a scale, for example, a scale ranging from 1 through to10, where 10 indicates that the program code and the text in thecode/text pair are 100% relevant to one another, and where 1 indicatesthat the program code and the text in the code text pair are 0% relevantto one another. In aspects of the invention, the user training feedback424 is only utilized during an initial training of the novelclassification/similarity model 436. In aspects of the invention, theuser training feedback 424 can be utilized during periodicpost-initial-training (or updated) training of the novelclassification/similarity model 436.

FIG. 5A depicts a flow diagram illustrating a method 500A that can beimplemented using the code-text analysis system 400 (shown in FIG. 4) inaccordance with aspect of the invention. The method 500A is an exampleof the multi-task aspects of the invention that can evaluate global(e.g., sequence-level) interactions between the query 422 and an entryfrom the database 410, as well as local (e.g., word-level) interactionsbetween the query 422 and an entry from the database 410. The followingdescription of the method 500A includes references to the code-textanalysis system 400 that implements the method 500A, along withreferences to the various representations shown in FIG. 5B. Inembodiments of the invention, the method 500A is configured to implementa neural network model (e.g., classification/similarity model 436) thatmodels or represents a level of similarity between a first text segmentand a second text segment. In embodiment of the invention, the firsttext segment is the user query 422, and the second text segment is adatabase entry (DBE) 410A stored in the database 410. The method 500Aproceeds by receiving the user query 422 at the computer system 1300. Asnoted, the user query 422 includes the first text segment. In someembodiments of the invention, the first text segment can be a segment ofprogram code. In some embodiments of the invention, the first textsegment can be a natural language text segment. Based at least in parton receiving the user query 422, the computer system 1400 accesses theDBE 410A stored in the database 410. In aspects of the invention, themethod 500A evaluates all of the entries (serially or in batches) in thedatabase 410 so the DBE 410A can be any entry stored in the database410. As noted, the DBE 410A includes the second text segment. Inembodiments of the invention where the first text segment of the userquery 422 is a program code segment, the second text segment can be oneof the natural language text segments 414 stored in the database 410. Inembodiments of the invention where first text segment of the user query422 is a natural language text segment, the second text segment can beone of the program code segments 412 stored in the database 410.

In embodiments of the invention, the first text segment includes a firsttext segment (FTS) sequence that includes at least one FTS charactergrouped into at least one FTS word. In embodiments of the invention, thesecond text segment includes a second text segment (STS) sequence thatincludes at least one STS character grouped into at least one STS word.

In embodiments of the invention, at block 502 the method 500A uses thenatural language processing algorithms 432 and theclassification/similarity algorithms 434 to convert the query/FTSsequence 422 to query/FTS sequence representations. In some aspects ofthe invention, the query/FTS sequence representations generated at block502 can be implemented as a query/FTS token sequence (TS) 560A (shown inFIG. 5B) and as query/FTS TS vectors in the form of query/FTS TSembeddings 560B (shown in FIG. 5B).

In embodiments of the invention, at block 504 the method 500A uses thenatural language processing algorithms 432 and theclassification/similarity algorithms 434 to also convert the query/FTSsequence 422 to query/FTS token/word representations. In some aspects ofthe invention, the query/FTS token/word representations generated atblock 504 can be implemented as query/FTS tokens/words 562A (shown inFIG. 5B) and as query/FTS token/word vectors in the form of query/FTStoken/word embeddings 562B (shown in FIG. 5B).

In embodiments of the invention, at block 508 the method 500A uses thenatural language processing algorithms 432 and theclassification/similarity algorithms 434 to convert the DBE/STS sequence410A to DBE/STS sequence representations. In some aspects of theinvention, the DBE/STS sequence representations generated at block 508can be implemented as a DBE/STS token sequence (TS) 564A (shown in FIG.5B) and as DBE/STS TS vectors in the form of DBE/STS TS embeddings 564B(shown in FIG. 5B).

In embodiments of the invention, at block 506 the method 500A uses thenatural language processing algorithms 432 and theclassification/similarity algorithms 434 to also convert the DBE/STSsequence 410A to DBE/STS token/word representations. In some aspects ofthe invention, the DBE/STS token/word representations generated at block506 can be implemented as DBE/STS tokens/words 566A (shown in FIG. 5B)and as DBE/STS token/word vectors in the form of DBE/STS token/wordembeddings 566B (shown in FIG. 5B).

In embodiments of the invention, at block 520 the method 500A uses thenatural language processing algorithms 432 and theclassification/similarity algorithms 434 to extract global features fromthe query/FTS sequence representations. In embodiments of the invention,at block 522 the method 500A uses the natural language processingalgorithms 432 and the classification/similarity algorithms 434 toextract local features from the query/FTS word representations. Inembodiments of the invention, at block 522 the method 500A uses thenatural language processing algorithms 432 and theclassification/similarity algorithms 434 to also extract local featuresfrom the DBE/STS word representations. In embodiments of the invention,at block 524 the method 500A uses the natural language processingalgorithms 432 and the classification/similarity algorithms 434 toextract global features from the DBE/STS sequence representations.

In embodiments of the invention, at block 530 the method 500A uses thenatural language processing algorithms 432 and theclassification/similarity algorithms 434 to represent the globalfeatures of the query/FTS sequence representations and the localfeatures of the query/FTS word representations as a single vector havingglobal and local features of the query/FTS sequence 422. In embodimentsof the invention, at block 532 the method 500A uses the natural languageprocessing algorithms 432 and the classification/similarity algorithms434 to represent the global features of the DBE/STS sequencerepresentations and the local features of the DBE/STS wordrepresentations as a single vector having global and local features ofthe DBE/STS.

At block 540 of the method 500A, a similarity technique is applied tothe single vector output from block 530 and the single vector outputfrom block 540 to determine the level of correlation between the vectorpairs output from blocks 530, 532. In general, there are a variety ofsimilarity metric techniques that can be used to determine thesimilarity between two things. At block 550 a similarity score can bedeveloped by quantifying different attributes of data objects thenemploying different similarity algorithms across those attributes toyield similarity scores between the different data objects. Inembodiments of the invention, the similarity metric technique used atblock 540 can be a cosine similarity technique configured to compute thecosine similarity of the vector pairs output from blocks 530, 532. Insome embodiments of the invention, the similarity score used at block550 can be configured to generate its similarity scores with confidencelevels (CLs). In embodiments of the invention, block 550 can alsogenerate the output 450 in the previously described format(s).

FIG. 5C depicts a flow diagram illustrating a method 500B that can beimplemented using the code-text analysis system 400 (shown in FIG. 4) inaccordance with aspect of the invention. The method 500B is an exampleof the multi-perspective and the multi-task aspects of the invention.The multi-perspective aspects of the method 500B operate insubstantially the same way as the multi-perspective aspects of themethod 500A (shown in FIG. 5A). The multi-task aspects of the method500B can train different sub-models of the classification/similaritymodel 436 (shown in FIG. 4) for different, related tasks in such a waythat the sub-models share parameters. In accordance with aspects of theinvention, these shared parameters are the sets of weights thatdetermine the connection strengths between pairs of nodes in themulti-perspective, multi-task model (e.g., enhanced MP-CTM model 436Dshown in FIG. 6) of the classification/similarity algorithm 436 (orneural network). Two models that share parts of their architecture (e.g.a subset of layers) have shared parameters if they use the same sets ofweights for some or all of the layers in the shared architecture. Thedifferent, related tasks can include matching code and text; translatingfrom code to text; translating from text to code; and the like. Thefollowing description of the method 500B includes references to thecode-text analysis system 400 that implements the method 500A, alongwith references to the various representations shown in FIG. 5B. Inembodiments of the invention, the method 500B is configured to implementa neural network model (e.g., classification/similarity model 436) thatmodels or represents a level of similarity between a user query 422 andthe entries in the database 410. In the embodiment of the method 500Bshown in FIG. 5C, the query 422 is a segment of natural language text,and the entries in the database 410 include segments of program code412. In some embodiment of the invention, the level of similaritybetween the user query 422 and the entries in the database 410 is ameasure of how well the user query 422 describes the functionality of asegment of program code 412 in the database 410. Although the method500B is applied to the task of receiving natural language text in theuser query 422 and evaluating the entries in the database 410 todetermine the entries that match the natural language text, the method500B could also be applied to the task of receiving program code in theuser query 422 and evaluating entries in the database 410 to determinethe natural language entries that match the received program code.

As shown in FIG. 5C, STEP A of the method 500B uses the computer system1300 to receive the user query 422, determine that the user query is asegment of natural language text, and access the program code 412 storedin the database 410. STEPS B, C, and D are performed by the naturallanguage processing algorithms 432 and the classification/similarityalgorithms 434 and can proceed serially or in parallel (or in acombination of serial/parallel). In embodiments of the invention, STEP Btokenizes the words and sequence(s) in the user query 422, representsthe tokenized user query in word/sequence embedding(s) (i.e., a densevector representation), and extracts features from the word/sequenceembeddings created from the user query 422. In embodiments of theinvention, the word/sequence embeddings generated at STEP B can bepre-trained. In embodiments of the invention, STEP C tokenizes the wordsand sequence(s) in the program code 412 retrieved from the database 410,represents the tokenized program code in word/sequence embedding(s)(i.e., a dense vector representation), and extracts features from theword/sequence embeddings created from the program code 412. Inembodiments of the invention, the word/sequence embeddings generated atSTEP C can be pre-trained.

In embodiments of the invention, STEP D of the method 500B accesses thetokenized words and sequence(s) in the program code 412, represents thetokenized program code in word/sequence in syntactic representations ofthe program code words/sequences, and extracts features from thesyntactic representations of the program code. In embodiments of theinvention, the syntactic representations of the program code can beobtained using an abstract syntax tree (AST). The features extractedfrom the AST representation of the program code 412 in order to learnboth syntactic (STEP D) and semantic (STEP C) program code features inparallel with one another.

In some embodiments of the invention, STEP D of the method 500B canoptionally be omitted. In some embodiments of the invention, STEP D ofthe method 500B can be incorporated into the method 500A shown in FIG.5A.

In embodiments of the invention, STEP E of the method 500B is configuredto concatenate the program code vectors generated at STEPS C & D into asingle semantic/syntactic program code vector then apply a similaritymetric technique (e.g., a cosine similarity technique) and, optionally,confidence levels, to the single semantic/syntactic program code vectorand the query vector generated at STEP B to determine the level ofcorrelation between the user query 422 and the program code segments 412stored in the database 410. The operations at STEP E aremulti-perspective in that they take into account global (i.e., sequencelevel) interactions between code and natural language text, as well aslocal (i.e., word or token level) interactions between code and naturallanguage text.

In embodiments of the invention, STEP F of the method 500B uses thecomputing system 1300 to generate the output 450 in a flexible formatand structure that captures the learned relationship between the userquery 422 (i.e., natural language text) and the segments of program code412 stored in the database 410. The specific format and structure of theoutput 450 shown in FIG. 4 is one example, and the code-text analysissystem 400 and the computing system 1300 can be programmed to generatethe output 450 in other formats and structures that match the specificembodiment of the user query 422 and the classification/similarityalgorithm 434 that are being used.

At STEP G of the method 500B, the computer system 1300 and theclassification/similarity model 436 receive user training feedback 424from the user 420 based on a review by the user 420 of the output 450.In embodiments of the invention, the format of the output 450 caninclude a user feedback region as previously described herein where theuser 420 can electronically enter user feedback on one or more of thecode/text pairs returned in the output 450. In aspects of the invention,the user training feedback 424 is only utilized during an initialtraining of the model 436B. In aspects of the invention, the usertraining feedback 424 can be utilized during periodicpost-initial-training (or updated) training of the model 436B.

In some embodiments of the invention, STEP G of the method 500B shown inFIG. 5C can be incorporated into the method 500A shown in FIG. 5A.

In embodiments of the invention, STEP H of the method 500C utilizes amulti-task (MT) learning/training function/module 438 (shown in FIG. 6).More specifically, at STEP H of the method 500C, the MTlearning/training function/module 438 is configured to include differentmodules with shared parameters. STEP H trains different sub-models ofthe classification/similarity model 436 (shown in FIG. 4) for different,related tasks in such a way that the sub-models share parameters. The MTlearning/training function/module 438 sets the parameters (weights) ofthe classification/similarity model 436 in such a way that the layers ofthe model that are used for different tasks work well for all of thedifferent tasks, thereby improving performance on the code-text matchingtask. The portions of the classification/similarity model 436 that aretrained in accordance with STEP H include the operations that map thesequence of token vectors into another sequence of c-dimensional vectorsthat capture contextual information (e.g., as shown in STEPs B of themethods 700A, 700B, 700C, 700D shown in FIGS. 7A-7D). By using thedifferent modules with shared parameters to focus on different tasks,the classification/similarity model 436 can be used to learn a moregeneral model that performs better over these individual tasks than ifthe different frameworks had been shared separately. In embodiments ofthe invention, where the main task of the method 500B is code-textmatching, the different tasks can include matching source code andnatural language, translating source code to natural language, andtranslating natural language to source code. These tasks are all closelyrelated because they all require the ability to capture whether a pieceof natural language describes a piece of code.

The method 500B utilizes the different modules with shared parameters tofocus on different tasks, thereby enabling the classification/similaritymodel 436 to learn a more general model that performs better over theseindividual tasks than if the different frameworks had been sharedseparately. In embodiments of the invention, the main task of the method500B is code-text matching, and the different tasks having sharedparameters include the main task of matching source code and naturallanguage, along with the related tasks of translating source code tonatural language, and the related task of translating natural languageto source code. The main task and the related tasks are closely relatedbecause they all require the ability to capture whether a piece ofnatural language describes a piece of code. Incorporating the MTlearning/training function/module 438 results in theclassification/similarity model 436 being a more general model thatperforms better over the individual tasks.

FIG. 6 depicts block diagrams illustrating example implementations ofthe novel classification/similarity algorithms 434 (shown in FIG. 4) andthe classification/similarity models 436 (shown in FIG. 4). Inembodiments of the invention, the novel classification/similarityalgorithms 434 and classification/similarity models 436 can beimplemented as classification/similarity algorithms 434A and a baselinecode-text matching (CTM) model 436A configured and arranged to map codetokens and natural language text tokens into a joint embedding spacesuch that semantically similar code-text pairs will be projected tovectors that are close to each other. In accordance with aspects of theinvention, the baseline CTM model 436A is a relatively simple model fromwhich the other classification/similarity models 436B, 436C, 436D (shownin FIG. 6) will be built. The baseline CTM model 436A can also be usedas a comparison with the other classification/similarity models 436B,436C, 436D to test the quality of the results achieved using the otherclassification/similarity models 436B, 436C, 436D. In embodiments of theinvention, the baseline CTM model 436A includes an input layer, anoutput layer, and multiple hidden layers between the input/outputlayers. Each layer of the baseline CTM model 436A includes nodes, andthe layers/nodes are connected with none another in a weighted fashionsimilar to the neural network 300 (shown in FIG. 3A). In embodiments ofthe invention, the hidden layers of the CTM model 434A include a wordembedding layer, a context representation layer, and a max poolinglayer, which are configured and arranged to analyze tokenized andvectored results received at the word embedding layer from the inputlayer.

The operation of the baseline CTM model 436A will now be described withreference to the code-text analysis system 400 shown in FIG. 4, theclassification/similarity algorithms 434A and baseline CTM model 436Ashown in FIG. 6, and a method 700A shown in FIG. 7A. As best shown inFIGS. 4 and 7A, the computer system 1300 receives the user query 422from the user 420 and in response thereto accesses the database 410 toretrieve program code 412 and/or natural language text segments 414 tocompare with the user query 422. In aspects of the invention, the userquery 422 is a request to determine and rank the level of semanticsimilarity between a given program code segment (e.g., as received inthe user query 422) (which may or may not be among the program code 412)and the natural language text segments 414. In aspects of the invention,the user query 422 can be a request to determine and rank the level ofsemantic similarity between a given natural language text segment (whichmay or may not be one of the natural language text segments 414) and theprogram code 412.

Regardless of the specific form of the user query 422, the task to beperformed by the baseline CTM model 436A is to solve Equation (1) shownin FIG. 10, wherein, given a program code C (e.g., identified in theuser query 422) and a natural language text description D (e.g., one ofthe natural language code text segments 414 in the database 410), thebaseline CTM model 436A determines the level of semantic similaritybetween C and D. To accomplish this, the baseline CTM model 436A usesits input layer to tokenize the user query 422 and the data retrievedfrom the database 410 for comparison with the user query 422. Thebaseline CTM model 436A uses its hidden layers to map the tokenized Csequence and the tokenized D sequence into vectors (v_(c), vd) in thesame embedding space then calculates the cosine similarity score of thevectors as shown in Equation (1). The embeddings are computed by thehidden layers of the baseline CTM model 436A, namely, the word embeddinglayer, the context representation layer, and the max pooling layer, eachof which is described in the following paragraphs.

As shown in FIG. 7A, at STEP A of the method 700A, the word embeddinglayer receives C tokens and D tokens from the input layer 702 andrepresents C and D using a dense vector representation (e.g., theembeddings 330 shown in FIG. 3B). The position of a word within thevector space is learned from text and is based on the words thatsurround the word when it is used. The position of a word in the learnedvector space is referred to as its embedding. In operation, the wordembedding layer receives the tokenized C and D and maps each input tokeninto a d-dimensional vector. In embodiments of the invention, theseembeddings can be pre-trained using, for example, the FastTextopen-source lightweight library. FastText allows users to learn textrepresentations and text classifiers. FastText can be downloaded atwww.fasttext.cc. In embodiments of the invention, the embeddings can befine-tuned during training of the baseline CTM model 436A. In a suitablefine-tuning technique continuously updates the word embeddings duringtraining of the overall model, which is in contrast to training wordembeddings separately and keeping them fixed.

At STEP B of the method 700A, the context representation layer usesbi-directional long short-term memory (LSTM) to map the sequence of Cand D token vectors into another sequence of c-dimensional vectors thatcapture contextual information. The bidirectional LSTM trains twoinstead of one LSTM on the input sequence. The first training on theinput sequence as-is, and the second training is on a reversed copy ofthe input sequence. This approach can provide additional context to thebaseline CTM model 436A and results in faster and even fuller learningon the problem.

At STEP C of the method 700A, the max pooling layer is used to findamong the sequence of C and D vectors output by the contextrepresentation layer the maximum value for each dimension and return asingle c-dimensional vector. C and D are each a sequence ofd-dimensional vectors. The max-pooling layer maps an arbitrary lengthsequence of d-dimensional vectors into a single d-dimensional vectors.The down-sampling of the max pooling layer can be implemented bypartitioning the input vector sequences into a set of non-overlappingrectangles and, for each such sub-region, output the maximum. The maxpooling layer serves to control over-fitting by progressively reducingthe spatial size of the representation, as well as reducing the numberof parameters, the memory footprint, and amount of computation in thebaseline CTM model 436A. The baseline CTM model 436A contains two setsof the above-described hidden layers—one for the sequence of C tokensand the other for the sequence of D tokens.

At STEP D of the method 700A, the baseline CTM model 436A uses asimilarity metric technique to determine the level of correlationbetween the C vector and the D vector output from the baseline CTMmodel's hidden layers. In general, similarity metric techniques are usedto determine the similarity between two things. A similarity score canbe developed by quantifying different attributes of data objects thenemploying different similarity algorithms across those attributes toyield similarity scores between the different data objects. Inembodiments of the invention, the similarity metric technique can be acosine similarity technique configured to compute the cosine similarityof the C/D vector pairs output from the baseline CTM model's hiddenlayers. Using the baseline CTM model 436A to execute the method 700A,semantically similar C/D pairs will be projected to vectors that areclose to each other, thereby generating a global-level (orsequence-level) similarity evaluation of the C/D pair.

In some aspects of the invention, the baseline CTM model 436A can beconfigured to utilize algorithms that apply confidence levels (CLs) tovarious ones of its results/determinations (e.g., the above-describedsimilarity score) in order to improve the overall accuracy of theparticular result/determination. When the baseline CTM model 436A makesa determination or generates a result (i.e., a similarity score betweenC and D) for which the value of CL is below a predetermined threshold(TH) (i.e., CL<TH), the result/determination can be classified as havingsufficiently low “confidence” to justify a conclusion that thedetermination/result is not valid. If CL>TH, the determination/resultcan be considered valid and the determination/result can participate indownstream processing. Many different predetermined TH levels can beprovided. The determinations/results with CL>TH can be ranked from thehighest CL>TH to the lowest CL>TH in order to prioritize when, how andif the determinations/results are handled in downstream processing.

At STEP E of the method 700A, the computing system 1300 generates theoutput 450 in a flexible format and structure that captures the learnedrelationship between program code segments and natural language textsegments. The specific format and structure of the output 450 shown inFIG. 4 is one example, and the code-text analysis system 400 and thecomputing system 1300 can be programmed to generate the output 450 inother formats and structures that match the specific embodiment of theuser query 422 and the classification/similarity algorithm 434A that arebeing used.

In embodiments of the invention, the novel classification/similarityalgorithms 434 and the classification/similarity models 436 can beimplemented as novel classification/similarity algorithms 434B and acode, AST, and text (CAT) model 436B. The operation of the novel CATmodel 436B will now be described with reference to the code-textanalysis system 400 shown in FIG. 4, the classification/similarityalgorithms 434B and CAT model 436B shown in FIG. 6, and a method 700Bshown in FIG. 7B. As best shown in FIGS. 4 and 7B, the computer system1300 receives the user query 422 from the user 420 and in responsethereto accesses the database 410 to retrieve program code 412 and/ornatural language text segments 414 for comparison with the user query422. In aspects of the invention, the user query 422 is a request todetermine and rank the level of semantic similarity between a givenprogram code segment (e.g., as received in the user query 422) (whichmay or may not be among the program code 412) and the natural languagetext segments 414. In aspects of the invention, the user query 422 canbe a request to determine and rank the level of semantic similaritybetween a given natural language text segment (which may or may not beone of the natural language text segments 414) and the program code 412stored in the database 410.

In embodiments of the invention, the CAT model 436B uses the same layerarchitecture (including the input layer) as the baseline CTM model 436A(STEPS A, B, and C in FIG. 7B), but the method 700B performed by the CATmodel's layer architecture is augmented to include STEP A′, in whichfeatures are extracted from an AST representation of C in order to learnboth syntactic (STEP A′) and semantic (STEPS A, B, and C in FIG. 7B) Cfeatures in parallel with one another. The CAT model's layerarchitecture is configured to, at STEP D of the method 700B, concatenatethe semantic C vectors and the AST (or syntactic) C vectors into asingle embedding then apply a similarity metric technique (e.g., acosine similarity technique) to the single C-AST embedding and the Dvectors. Thus, the layer architecture of the CAT model 436B includes thesame three hidden layers as the baseline CTM model 436A except the layerarchitecture of the CAT model 436B includes three sets of the three CTMhidden layers (STEPS A, B, and C in FIG. 7B), namely, one set of CTMhidden layer for each embedding of the C sequence, the AST sequence, andthe D sequence.

At STEP E of the method 700B, the computing system 1300 generates theoutput 450 in a flexible format and structure that captures the learnedrelationship between program code segments and natural language textsegments. The specific format and structure of the output 450 shown inFIG. 4 is one example, and the code-text analysis system 400 and thecomputing system 1300 can be programmed to generate the output 450 inother formats and structures that match the specific embodiment of theuser query 422 and the classification/similarity algorithm 434B that arebeing used.

In embodiments of the invention, the novel classification/similarityalgorithms 434 and classification/similarity models 436 can beimplemented as novel classification/similarity algorithms 434C and amulti-perspective CTM (MP-CTM) model 436C. The operation of the novelMP-CTM model 436C will now be described with reference to the code-textanalysis system 400 shown in FIG. 4, the classification/similarityalgorithms 434C and MP-CTM model 436C shown in FIG. 6, and a method 700Cshown in FIG. 7C. As best shown in FIGS. 4 and 7C, the computer system1300 receives the user query 422 from the user 420 and in responsethereto accesses the database 410 to retrieve program code 412 and/ornatural language text segments 414 for comparison with the user query422. In aspects of the invention, the user query 422 is a request todetermine and rank the level of semantic similarity between a givenprogram code segment (e.g., as received in the user query 422) (whichmay or may not be among the program code 412) and the natural languagetext segments 414 stored in the database 410. In aspects of theinvention, the user query 422 can be a request to determine and rank thelevel of semantic similarity between a given natural language textsegment (which may or may not be one of the natural language textsegments 414) and the program code 412.

In embodiments of the invention, the MP-CTM model 436C uses the samelayer architecture as the CAT model 436B. However, in addition to theglobal similarity determined in the CTM and AST portions of the MP-CTMmodel 436C, at STEP A″ of the method 700C, a bilateral multi-perspectivematching (BiMPM) function/module is used to capture local similaritiesbetween C and D, and at STEP C′ of the method 700C, a global and localfusing layer is used to fuse the local and global similarities. Knownapproaches to BiMPM use it to compute similarities over pairs ofsentences from the same language. In contrast, aspects of the inventionapply BiMPM cross-linguistically (e.g., across natural language text andcomputer program code) to assess similarity of D and C. Additionally,known approaches to BiMPM use it as a binary classification algorithm.In contrast, aspects of the invention take the vectors computed byBiMPM, concatenate them with vectors computed by the CAT model, andcompute a cosine similarity of these vectors for C and D. In furthercontrast to known BiMPM models, aspects of the invention utilize a novelBi-MPM layer configured to take into account not only high-levelfeatures of code and text but also low-level features of semantic code(and, optionally, syntactic (AST) code) and text descriptions. Thus, inaddition to the global similarity determined in the baseline CTM modelportion of the MP-CTM model, the novel BiMPM layer captures localsimilarities between C and D. Accordingly, the novel MP-CTM model 436Ctakes into account not only high-level features of semantic program coderepresentations, syntactic (AST) program code representations(optionally), and natural language text representations, but also takesinto account low-level features of semantic program coderepresentations, syntactic (AST) program code representations(optionally), and natural language text representations. In embodimentsof the invention, the MP-CTM model's hidden layer architecture includesa raw representation layer, a context representation layer, aglobal-level sequence aggregation layer, the novel BiMPM layer, a globaland local fusing layer, and a final similarity prediction layer.

An example implementation of a suitable BiMPM layer is shown in FIG. 8and is described in greater detail subsequently herein in connectionwith the description of a MP-CTM model 436C′ shown in FIG. 8. Inembodiments of the invention, the MP-CTM model 436C shown in FIGS. 6 and7C can be implemented as the MP-CTM model 436C′ having a rawrepresentation layer, a context representation layer, a global-levelsequence aggregation layer, a BiMPM layer, a global and local fusinglayer, and a final similarity prediction layer. Additional details ofthe MP-CTM model 436C′ are described subsequently herein in connectionwith the description of FIG. 8.

At STEP D of the method 700C, the MP-CTM model 436C applies a similaritymetric technique (e.g., a cosine similarity technique) to the output ofthe global and local fusing layer at STEP C′. Accordingly, in additionto the core features provided in the CAT model 436B (shown in FIGS. 4and 7B), the MP-CTM model 436C takes into account not only high-level(i.e., sequence level) features of semantic C representations, syntacticC representations (i.e., AST), and D representations, but also low-level(i.e., token/word level) features of semantic C representations,syntactic C representations (i.e., AST), and D representations.

At STEP E of the method 700C, the computing system 1300 generates theoutput 450 in a flexible format and structure that captures the learnedrelationship between program code segments and natural language textsegments. The specific format and structure of the output 450 shown inFIG. 4 is one example, and the code-text analysis system 400 and thecomputing system 1300 can be programmed to generate the output 450 inother formats and structures that match the specific embodiment of theuser query 422 and the classification/similarity algorithm 434C that arebeing used.

In embodiments of the invention, the novel classification/similarityalgorithms 434 and classification/similarity models 436 can beimplemented as novel classification/similarity algorithms 434D and anenhanced MP-CTM model 436D with multi-task (MT) learning/trainingfunctions/modules 438. The MP-CTM model 436D is enhanced in that it isconfigured to utilize the MT learning/training functions/modules 438,which include different functions/modules with shared parameters. The MTlearning/training function/module 438, in accordance with aspects of theinvention, leverages an observation that tasks such as codesummarization, code generation, code retrieval, and code-text matchingare closely related because they all require the ability to capturewhether a segment of natural language text describes a segment of code.For example, code summarization models typically follow theencoder-decoder (i.e., seq2seq) framework from neural machinetranslation (NMT), but this translation task can also be used for otherapplications like code retrieval. Code-Text matching can be used as anauxiliary task for downstream applications like code retrieval, forexample, by using a matching model along with a summarization model tocompute similarity scores between source code and natural languagepairs.

By configuring the MT learning/training function/module 438 to providethe enhanced MP-CTM model 436D with different modules to focus ondifferent tasks, the enhanced layer architecture of the enhanced MP-CTMmodel 436D can learn a more general model that performs better overthese individual tasks than if the different frameworks had been sharedseparately. In embodiments of the invention, the different tasks caninclude matching code and natural language, translating code to naturallanguage, and translating natural language to code, all of which areclosely related because they require the ability to capture whether apiece of natural language describes a piece of code. Incorporating theMT learning/training function/module 438 results in the enhanced MP-CTMmodel 436D being a more general model that performs better over theindividual tasks.

The operation of enhanced MP-CTM model 436D and MT learning/trainingmodel 438 will now be described with reference to the code-text analysissystem 400 shown in FIG. 4; the classification/similarity algorithms434D, the enhanced MP-CTM model 436D, and the MT learning/trainingfunction/module 438; and the method 700D shown in FIG. 7D. As best shownin FIGS. 4 and 7D, the computer system 1300 receives the user query 422from the user 420 and in response thereto accesses the database 410 toretrieve program code 412 and/or natural language text segments 414 forcomparison with the user query 422. In aspects of the invention, theuser query 422 is a request to determine and rank the level of semanticsimilarity between a given program code segment (e.g., as received inthe user query 422) (which may or may not be among the program code 412)and the natural language text segments 414. In aspects of the invention,the user query 422 can be a request to determine and rank the level ofsemantic similarity between a given natural language text segment (whichmay or may not be one of the natural language text segments 414) and theprogram code 412.

In embodiments of the invention, the enhanced MP-CTM model 436D uses thesame layer architecture as the MP-CTM model 436C (STEPS A, A′, A″, B, C,C′ and D in FIG. 7D), but the method 700D performed by the layerarchitecture of the enhanced MP-CTM model 436D is enhanced by utilizingthe MT learning/training function/module 438. More specifically, at STEPG of the method 700D, the MT learning/training function/module 438 isconfigured to include different, related modules with shared parameters.In accordance with aspects of the invention, these parameters are thesets of weights that determine the connection strengths between pairs ofnodes in the enhanced MP-CTM model 436D of the classification/similarityalgorithm 434D (or neural network). Two models that share parts of theirarchitecture (e.g. a subset of layers) have shared parameters if theyuse the same sets of weights for some or all of the layers in the sharedarchitecture. The different, related tasks can include matching code andtext; translating from code to text; translating from text to code; andthe like.

In embodiments of the invention where the main task of the enhancedMP-CTM model 436D and MT learning/training function/module 438 iscode-text matching, the different, related tasks can include matchingsource code and natural language, translating source code to naturallanguage, and translating natural language to source code. These tasksare all closely related because they all require the ability to capturewhether a piece of natural language describes a piece of code.

The enhanced MP-CTM model 436D and MT learning/training function/module438 utilize the different, related modules with shared parameters tofocus on different tasks, thereby enabling the enhanced MP-CTM model436D to learn a more general model that performs better over theseindividual tasks than if the different frameworks had been sharedseparately. In embodiments of the invention, the main task of theenhanced MP-CTM model 436D and MT learning/training function/module 438is code-text matching, and the different tasks having shared parametersinclude the main task of matching source code and natural language,along with the related task of translating source code to naturallanguage, and the related task of translating natural language to sourcecode. The main task and the related tasks are closely related becausethey all require the ability to capture whether a piece of naturallanguage describes a piece of code. Incorporating the MTlearning/training function/module 438 results in the enhanced MP-CTMmodel 436D being a more general model that performs better over theindividual tasks

In embodiments of the invention, the MT learning/trainingfunction/module 438 shown in FIGS. 6 and 7D can be implemented as a MTlearning/training function/module 438A shown in FIG. 9. Additionaldetails of the MT learning/training function/module 438A are providedsubsequently herein in connection with the description of FIG. 9.

At STEP E of the method 700D, the computing system 1300 generates theoutput 450 in a flexible format and structure that captures the learnedrelationship between program code segments and natural language textsegments. The specific format and structure of the output 450 shown inFIG. 4 is one example, and the code-text analysis system 400 and thecomputing system 1300 can be programmed to generate the output 450 inother formats and structures that match the specific embodiment of theuser query 422 and the classification/similarity algorithm 434D that arebeing used.

At STEP F of the method 700D, the computer system 1300 and the MP-CTMmodel 436D receives user training feedback 424 from the user 420 basedon a review by the user 420 of the output 450. In embodiments of theinvention, the format of the output 450 can include a user feedbackregion where the user 420 can electronically enter user feedback on oneor more of the code/text pairs returned in the output 450. The computersystem 1300 can receive the user training feedback 424 through the userfeedback region of the output 450 and provide the user training feedback424 to the classification/similarity algorithms 434D, which isconfigured to use the user training feedback 424 to further train theenhanced MP-CTM models 436. In some embodiments of the invention, theoutput 450 can include an automatically generated dialogue box that isconfigured to prompt the user 420 to provide the user training feedback424 in the user feedback region of the output 450. In embodiments of theinvention, the user training feedback 424 can identify the code/textpairs returned by the enhanced MP-CTM model 436D wherein the code andthe text in the code/text pair are relevant to one another. Inembodiments of the invention, the user training feedback 424 canidentify the code/text pairs returned by the enhanced MP-CTM model 436Dwherein the code and the text returned in the code/text that are notrelevant to one another. In embodiments of the invention, the usertraining feedback 424 can identify the code/text pairs returned by theenhanced MP-CTM model 436D wherein the code and the text in thecode/text pair are relevant to one another, along with identifying thecode/text pairs returned by the enhanced MP-CTM model 436D wherein thecode and the text in the code/text pair are not relevant to one another.In some embodiments of the invention, the user training feedback 424 canbe provided on a scale, for example, a scale ranging from 1 through to10, where 10 indicates that the code and the text in the code/text pairare 100% relevant to one another, and where 1 indicates that the codeand the text in the code text pair are 0% relevant to one another. Inaspects of the invention, the user training feedback 424 is onlyutilized during an initial training of the model 436D. In aspects of theinvention, the user training feedback 424 can be utilized duringperiodic post-initial-training (or updated) training of the model 436D.

It is noted that STEP F of the method 700D can be incorporated intomethods 700B and 700C shown in FIGS. 7B and 7C.

Turning now to FIG. 8, as previously noted herein, in some embodimentsof the invention, the MP-CTM model 436C can be implemented as the MP-CTMmodel 436C′ shown in FIG. 8. In order to capture local (i.e., word/tokenlevel) similarities between code and text sequences, embodiments of theinvention provide a novel application of the BiMPM layer shown in FIG. 8in a manner that allows the MP-CTM model 436C′ to take into account notonly high-level (i.e., sequence level) features of code and text butalso low-level (i.e., word/token level) features of code (and AST) andtext descriptions. As shown in FIG. 8, the MP-CTM model 436C′ includes araw representation layer, a context representation layer, a global-levelsequence aggregation layer, a BiMPM layer, a global and local fusinglayer, and a final similarity prediction layer, each of which isdescribed in greater detail below.

In embodiments of the invention, the raw representation layer of theMP-CTM model 436C′ takes as input the code sequence, the AST sequence,and the description sequence independently. In embodiment of theinvention, the raw representation layer uses sub-word regularizationbased on unigram language modeling to transform the original tokens intosequences of shorter (and hence more common) sub-strings. The inventorshave conducted experiments to confirm the efficacy of this approach toimplementing the raw representation layer by comparing models trained onraw (tokenized) source code and text with corresponding models trainedon pre-processed code and text. In embodiments of the invention, theFastText open-source lightweight library is trained to obtain sub-wordembeddings for all of the pre-processed and tokenized text, code and ASTstrings, which are used at the inputs to the raw representation layer.The output of the raw representation layer is three sequences of tokenembeddings, one for each of the input sequences including codesequence(s), AST sequence(s), and description sequence(s).

In accordance with aspects of the invention, the embeddings generated bythe raw representation layer are context-free and independent of thepresence of other words in the sequence. The context representationlayer is configured and arranged to incorporate contextual informationinto the representations of both sequences. A bi-directional longshort-term memory (BiLSTM) is used for this purpose. The output of thecontext representation layer is also two sequences of vectors exceptthat now these vectors contain contextual information. Each position inthe sequence corresponds to the hidden state vector returned by the LSTMat that time-step.

In accordance with aspects of the invention, in the global-levelsequence aggregation layer the embeddings of the code sequence, the ASTsequence, and the description sequence generated from the contextrepresentation layer are used to produce global-level embedding of thewhole sequence accordingly. In embodiments of the invention, theglobal-level sequence aggregation layer uses simple max-pooling tocompute the global-level embedding. For the code sequence and the ASTsequence, their corresponding global-level hidden representations areconcatenated into a single global-level vector embedding for code input.

In accordance with aspects of the invention, the BiMPM layer containstwo different layers, namely the BiMPM matching layer and the BiMPMlocal aggregation layer. The goal of the BiMPM layer is to first compareeach contextual embedding in a code sequence with another text sequencethen aggregate local feature vectors into a single local-level vector.The BiMPM matching layer matches two sequences P and Q in twodirections, namely, matching each position in the sequence P with allpositions in the sequence Q, and matching each position in the sequenceQ with all positions in the sequence P. The output of this layer is alsotwo sequences of vectors, where each vector in the first sequencecontains the matching result of the corresponding position in thesequence P against all positions in the sequence Q, and where eachvector in the second sequence contains the matching result of thecorresponding position in the sequence Q against all positions in thesequence P. The main component of BiMPM's matching layer is amulti-perspective cosine matching function f_(m) which is used tocompare two vectors in Equation (2) (shown in FIG. 10), where v₁ and v₂are two d-dimensional vectors (d being the dimension of the tokenembeddings), W∈R^(l×d) is the matrix of trainable parameters of themodel, and m is an 1-dimensional vector. Each element m_(k)∈m is thecosine similarity between the two weighted vectors (° is elementwisemultiplication, and W_(k) is the k-th row of W) in Equation (3) shown inFIG. 10.

In aspects of the invention, the BiMPM layer can employ four differentmatching strategies, namely full-matching, maxpool-matching,attentive-matching and max-attentive-matching. In contrast to knownapproaches, embodiments of the invention implement the above-describedmatching strategies for code-text sequences instead of for text-textsequences. The BiMPM local aggregation layer aggregates the sequence itreceives from the BiMPM matching layer using another biLSTM, andcomputes a fixed length local-level hidden representation. Aspects ofthe invention pass both of these code and text sequences through anotherbiLSTM layer. The value of the final hidden state of this layer is thefixed-length local-level vector representing the hidden embedding of thewhole input sequence, one for code and one for text.

In aspects of the invention, once both global-level hiddenrepresentations of code and text sequences are obtained from theglobal-level sequence aggregation layer, and the local-level hiddenrepresentations of code and text sequences are obtained from the BiMPMlayer, this information is fused in order to capture both global-leveland local-level context information. In aspects of the invention, aconcatenation function can be used to fuse these vectors for simplicity.

In aspects of the invention, the similarity prediction layer is a simpletwo-layer feed-forward neural network that reads in the fixed lengthvectors that represent both global-level and local-level featureinformation of input code and text sequences, and applies a cosinefunction on the output layer to compute the probability of the twosequences being semantically similar. Because of the use of similarityscore prediction, the number of output nodes is between 0 and 1.

Turning now to FIG. 9, as previously noted herein, in embodiments of theinvention the MT learning/training function/module 438 of the enhancedMP-CTM model 436D shown in FIGS. 6 and 7D can be implemented as the MTlearning/training function/module 438A shown in FIG. 9. In accordancewith aspects of the invention, the MT learning/training function/module438A is configured to consider two related tasks, namely acode-to-description translation model and a description-to-codetranslation model. The code-to-description translation model uses anencoder-decoder framework with attention. The encoder-decoder framework(or model) used in aspects of the invention is an architectureconfigured and arranged to operate in a recurrent neural network for asequence-to-sequence prediction problem. The encoder-decoder frameworkincludes an encoder sub-model communicatively coupled to a decodersub-model. The encoder sub-model is responsible for stepping through theinput time steps and encoding the entire sequence into a fixed lengthvector called a context vector. The decoder sub-model is responsible forstepping through the output time steps while reading from the contextvector.

A problem with the encoder-decoder framework is that performance candegrade when the input and/or output sequences are relatively long. Thereason is believed to be because of the fixed-sized internalrepresentation used by the encoder sub-model. Attention is an extensionapplied to the encoder-decoder framework that addresses this limitation.In some implementations, the attention technique can work by firstproviding a richer context from the encoder sub-model to the decodersub-model and a learning mechanism where the decoder sub-model can learnwhere to pay attention in the richer encoding sub-model when predictingeach time step in the output sequence. More specifically, in someimplementations the attention technique can be achieved by keeping theintermediate outputs from the encoder LSTM from each step of the inputsequence and training the model to learn to pay selective attention tothese inputs and relate them to items in the output sequence. In otherwords, each item in the output sequence is conditional on selectiveitems in the input sequence. Each time the proposed encoder-decoderframework/model generates a word in a translation, it “soft-searches”for a set of positions in a source sentence where the most relevantinformation is concentrated. The encoder-decoder framework/model thenpredicts a target word based on the context vectors associated withthese source positions and all the previous generated target words.Thus, the encoder-decoder framework/model encodes the input sentenceinto a sequence of vectors and chooses a subset of these vectorsadaptively while decoding the translation. This frees theencoder-decoder framework/model from having to fit all of theinformation of a source sentence, regardless of its length, into afixed-length vector.

Returning to the code-to-description model, the goal of thecode-to-description model is code summarization, i.e., given a segmentof program code return a natural language sequence that can describe thesegment of program code. The description-to-code translation model alsouses an encoder-decoder framework with attention. The input to thedescription-to-code model is a natural language sequence and the outputis a segment of source code that performs the task described by theinput.

Aspects of the invention leverage an observation that multi-tasktraining of models for related tasks with shared parameters can improveperformance. By using the MT learning/training function/module 438A touse different modules with shared parameters to focus the MP-CTM model438D on different tasks, the MP-CTM model 436D can be used to learn amore general model that performs better over these individual tasks thanif we had shared different frameworks separately. In embodiments of theinvention, the MT learning/training function/module 438A considers threeseparate tasks, namely, matching source code and natural language,translating source code to natural language, and translating naturallanguage to source code. During experiments performed on embodiments ofthe invention, only the code-text matching model is evaluated and itsperformance is compared with the other baselines.

In accordance with aspects of the invention, the MT learning/trainingfunction/module 438A enhances the code-text matching main task byconsidering the two related tasks of implementing a code-to-descriptiontranslation model and implementing a description-to-code translationmodel. The code-to-description translation model uses an encoder-decoderframework with attention. The goal of this code-to-descriptiontranslation framework/model is code summarization, i.e. given a codesnippet (or segment of program code), return a natural language sequencethat can describe the given program code. The description-to-codetranslation model also uses an encoder-decoder framework with attention.The input is a natural language sequence and the output is a snippet ofsource code (or program code) that performs the main task described bythe input.

The MT learning/training function/module 438A considers the three tasksdescribed above, namely, matching source code and natural language,translating source code to natural language, and translating naturallanguage to source code. For this purpose, the MT learning/trainingfunction/module 438A includes 6 different modules, namely, a codeencoder, a code decoder, a natural language (NL) encoder, a NL decoder,an AST encoder (which is optional), and a matching module. The codeencoder and the code decoder together form an encoder-decoder frameworkfor translating a code sequence to a natural language sequence.Similarly, the NL encoder and the NL decoder form an encoder-decoderframework to translate a natural language sequence to a code sequence.Finally, for the matching task, the code encoder, the NL encoder, andthe AST encoder produce the high-level features representing the codeand the text like the CAT Model 436B (shown in FIGS. 6 and 7B). Theserepresentations are then combined with the matching vectors returned bythe MP-CTM module 436C, 436C′ (shown in FIGS. 6, 7C, and 8) and asimilarity technique (e.g., similarity technique 540 shown in FIG. 5A)can be applied thereto. In embodiments of the invention, theabove-described representations combined with the matching vectorsreturned by the MP-CTM module 436C, 436C′ can be fed into a similaritymodule (e.g., the matching module shown in FIG. 8) configured to computethe cosine similarity between these combined vectors. In each iteration,the code-to-language translation task can be trained first, which can befollowed by the language-to-code translation task, which can be followedby the similarity module for the matching task. For the experimentsdescribed herein, only the code encoder, the AST encoder, the NL encoderand the matching module are used to compute the similarity score betweenthe input code-text pair.

The inventors conducted experiments to confirm the efficacy of the novelC/D models described herein in accordance embodiments of the invention.A dataset known as the CoNaLa dataset was utilized in the experiments.The CoNaLa dataset has two parts, namely, a manually curated parallelcorpus consisting of 2,379 training and 500 test examples, and a largeautomatically-mined dataset with 600k examples. Each example contains asnippet of code and its corresponding natural language description. Thecode-text pairs 1100 shown in FIG. 11 are examples from the CoNaLadataset. Because the automatically mined dataset is very noisy, only thecurated dataset was used. The models used to create the CoNaLa datasetinvolved identifying which sub-string of a longer piece of codecorresponds to a description. The experiments described herein uses theCoNaLa dataset to perform the code-text matching and the code retrievaltasks.

To use the CoNaLa dataset for text-code matching, the original pieces ofcode and their descriptions (e.g., code-text pairs 1100 shown in FIG.11) were used as positive examples. Negative examples were generated byrandomly sampling from the annotations in the dataset except from thecorresponding one. During training, a triple was used having a codesnippet, a correct description, and an incorrect description. Forevaluating the matching performance, the experiment(s) included the samenumber of positive and negative examples. For the retrieval task, forevery natural language query D, the rank of its corresponding codesnippet C among K+1 candidates was calculated. The remaining Kcandidates were obtained by sampling randomly from the CoNaLa dataset.In the experiments, K=49.

In the experimental set up, the text-code matching models were trainedon triples (C, D+, D−) consisting of a snippet of code C, a naturallanguage description D+ that correctly describes what the code does (apositive example), and a natural language description D− that does notdescribe what the code does (a negative example). The ranking loss canbe minimized using known techniques represented by Equation (4) shown inFIG. 10. The specific details of Equation 10 and how it is used in theexperiments are known so have been omitted in the interest of brevity.

All hidden units in the long short-term memory (LSTM) networks used inthe experimental models have a dimension size of 200. The experimentaltoken embedding size was set to 300. In the CAT model, because thevectors representing the code and AST respectively are concatenated thencompared with the vector representing the natural language description,the first two vectors are each half the dimension size of the third one.The dimensions of the code and AST representations are 100 each, and thedimension of the natural language representation is 200. In each of theLSTM networks, bi-directional LSTMs with one layer are used. Theexperimental models are implemented in PyTorch and trained using theAdam optimizer with batch size 80.

Embodiments of the MP-CTM model(s) and the enhanced MP-CTM model(s) withMT training/learning modules were compared against four baselines,namely, a code-text (CT) model (corresponds to the previously describedbaseline CTM module 436A (shown in FIGS. 6 and 7A); a CAT model(corresponds to the CAT model 436B (shown in FIGS. 6 and 7B) configuredto incorporate AST features); any simple version of a BiMPM model; and aBiMPM-C, which is the simple BiMPM model enhanced by adding ASTfeatures. For code-text matching, accuracy, precision, recall and an F1score are reported. For code retrieval, Recall@K (K=1,5,10) and meanreciprocal rank (MRR) of the correct answer are reported.

Tables 1 and 2 in FIG. 12A show test set results for text-code matching(with and without pre-processing) and code retrieval (only withpre-processing). In general, pre-processing text simply means bringingtext into a form that is predictable and analyzable for the main task athand. A variety of suitable pre-processing techniques are known,including, for example, lower casing, stemming, normalization,lemmatization, stop word removal, and the like. In Table 1,pre-processing by subword regularization was used and provedconsistently improved performance on the matching task. Accordingly,results without pre-processing are omitted from the retrieval results inTable 2.

In going from the first (CT) row to the second (CAT) row in Tables 1 and2, it is noted that the AST features increase the F−1 score from 0.8388to 0.8862 without pre-processing and from 0.8619 to 0.8880 withpre-processing. A possible explanation for this is because ASTs containadditional information that is not present in the original code,especially in Python where whitespace matters, and the AST helpsmaintain information such as variable scope, which is not present in theraw code. The retrieval task sees a very significant boost in MRR from0.322 to 0.586 just by adding AST features.

Row 3 of Table 1 shows that the BiMPM model by itself gives a fairly lowF−1 score of 0.773 on matching without pre-processing, largely due to asignificant drop in precision. This increases to 0.870 on thepre-processed data, which is competitive against the other models.BiMPM-C achieves much better performance across the board than BiMPM,outperforming all non-BiMPM-based models on pre-processed data. Evenbetter results were achieved by combining the BiMPM-C model and the CATmodel in the MPCTM model (Row 5), yielding the best matching performanceon the non-pre-processed data (F−1 score=0.910). Table 2 shows that theBiMPM-C again outperforms BiMPM, although it still performs a littleworse than the CAT model. Combining BiMPM-C and CAT to MPCTM improvesthe Recall@ 1 by a small amount, but performs worse than CAT on allother metrics.

Adding the Multi-task component to the MPCTM model (i.e. MPCTM-MT)improves the matching recall (and hence overall performance) onpre-processed data, and yields the best F−1 score of 0.922. On theretrieval task, MPCTM-MT has the best performance with an MRR of 0.587and Recall@1 of 0.397. However, it is also noteworthy that, withoutpre-processing, multitask training can result in a slight decrease inperformance. A possible explanation is because translation requiressubword regularization for coverage. A so-called BLEU score calculationalso can provide insights on performance. BLEU stands for the bilingualevaluation understudy and is a score for comparing a candidatetranslation of text to one or more reference translations. Althoughdeveloped for translation, it can be used to evaluate text generated fora suite of natural language processing tasks. For the code generationtask, also known as translating natural language to code, a BLEU scoreof 6.51 without multi-task training is obtained, and a BLEU score of9.41 with multi-task training is obtained. For code summarization, ortranslation from code to natural language, a BLEU score of 4.16 withoutmulti-task training is obtained, and a BLEU score of 4.88 withmulti-task training is obtained. While these scores are low, it showsthat using multi-task training in accordance with aspects of theinvention, improves performance. A possible explanation for thetranslation scores being so low is because a very simplistic translationmodel is being used as a baseline model, given that the primary focuswas on the code-text matching and code retrieval tasks.

The top 5 results returned from a case study portion of the experimentsare shown in FIG. 12B as Returned Results A, B, and C. The novelMPCTM-MT model was used to generate the Returned Results A & B. Thesereturned results are consistent with the scores shown in Table 2 of FIG.12A. For the query “change current working directory”, the top 5 resultsreturned are shown in FIG. 12B as Returned Results A. The modelcorrectly ranks the correct result highest. Interestingly, the next 2results are OS-related commands, so the model correctly shows thatOS-related commands have high semantic similarity with the query becauseit contains the term “directory.”

For another query “remove all whitespace in a string ‘sentence;” the top5 results returned are shown in FIG. 12B as Returned Results B. Here,the correct result is ranked second in the returned list of results.However, the remaining results are all string operations because theycontain the join function and regex operations, suggesting that themodel understands that the user is looking for something related tostrings.

For the query “merge lists [‘it’] and list [‘was’] and list [‘annoying’]into one list” the top 5 results returned are shown in FIG. 12B asReturned Results C. The model correctly ranks the required code snippethighest. It is noteworthy that, like the previous cases, the othersnippets returned by the model involve lists and list operations likelist comprehensions. This shows that the model successfully understandsthat the user query involves lists.

Thus it can be seen from the foregoing detailed description thatembodiment of the invention provide technical benefits and effects.Embodiments of the invention provide technical solutions for thecross-lingual tasks of code-text matching and code retrieval.Embodiments of the invention provide a deep neural network having anovel MP-CTM model and/or a novel MP-CTM model with multi-tasklearning/training for this task. The multi-perspective features of themodel(s) evaluate global (or sequence-level) interactions between codeand text, as well as local (or word-level) interactions between code andtext. In contrast to known approaches, the multi-perspective nature ofthe MP-CTM model allows it to capture richer word-level andsequence-level similarities between the code and natural language textinput sequences. The multi-task features of the model can train themodel's main task using shared parameters taken from tasks that arerelevant to the main task. Finally, experiments have been conducted toindicate that pre-processing source code and natural language textinputs with sub-word regularization can improve the results of thedisclosed multi-perspective models and the disclosed multi-task modelsthat are trained on the above-described translation tasks.

FIG. 13 illustrates an example of a computer system 1300A that can beused to implement the computer-based components of the neural networksystem 300 and the code-text analysis system 400 shown in FIGS. 3A and4. The computer system 1300A includes an exemplary computing device(“computer”) 1302 configured for performing various aspects of thecontent-based semantic monitoring operations described herein inaccordance aspects of the invention. In addition to computer 1302,exemplary computer system 1300A includes network 1314, which connectscomputer 1302 to additional systems (not depicted) and can include oneor more wide area networks (WANs) and/or local area networks (LANs) suchas the Internet, intranet(s), and/or wireless communication network(s).Computer 1302 and additional system are in communication via network1314, e.g., to communicate data between them.

Exemplary computer 1302 includes processor cores 1304, main memory(“memory”) 1310, and input/output component(s) 1312, which are incommunication via bus 1303. Processor cores 1304 includes cache memory(“cache”) 1306 and controls 1308, which include branch predictionstructures and associated search, hit, detect and update logic, whichwill be described in more detail below. Cache 1306 can include multiplecache levels (not depicted) that are on or off-chip from processor 1304.Memory 1310 can include various data stored therein, e.g., instructions,software, routines, etc., which, e.g., can be transferred to/from cache1306 by controls 1308 for execution by processor 1304. Input/outputcomponent(s) 1312 can include one or more components that facilitatelocal and/or remote input/output operations to/from computer 1302, suchas a display, keyboard, modem, network adapter, etc. (not depicted).

The terminology used herein is for the purpose of describing particularembodiments only and is not intended to be limiting. As used herein, thesingular forms “a”, “an” and “the” are intended to include the pluralforms as well, unless the context clearly indicates otherwise. It willbe further understood that the terms “comprises” and/or “comprising,”when used in this specification, specify the presence of statedfeatures, integers, steps, operations, elements, and/or components, butdo not preclude the presence or addition of one or more other features,integers, steps, operations, element components, and/or groups thereof.

The following definitions and abbreviations are to be used for theinterpretation of the claims and the specification. As used herein, theterms “comprises,” “comprising,” “includes,” “including,” “has,”“having,” “contains” or “containing,” or any other variation thereof,are intended to cover a non-exclusive inclusion. For example, acomposition, a mixture, process, method, article, or apparatus thatcomprises a list of elements is not necessarily limited to only thoseelements but can include other elements not expressly listed or inherentto such composition, mixture, process, method, article, or apparatus.

Additionally, the term “exemplary” is used herein to mean “serving as anexample, instance or illustration.” Any embodiment or design describedherein as “exemplary” is not necessarily to be construed as preferred oradvantageous over other embodiments or designs. The terms “at least one”and “one or more” are understood to include any integer number greaterthan or equal to one, i.e. one, two, three, four, etc. The terms “aplurality” are understood to include any integer number greater than orequal to two, i.e. two, three, four, five, etc. The term “connection”can include both an indirect “connection” and a direct “connection.”

The terms “about,” “substantially,” “approximately,” and variationsthereof, are intended to include the degree of error associated withmeasurement of the particular quantity based upon the equipmentavailable at the time of filing the application. For example, “about”can include a range of ±8% or 5%, or 2% of a given value.

The present invention may be a system, a method, and/or a computerprogram product at any possible technical detail level of integration.The computer program product may include a computer readable storagemedium (or media) having computer readable program instructions thereonfor causing a processor to carry out aspects of the present invention.

The computer readable storage medium can be a tangible device that canretain and store instructions for use by an instruction executiondevice. The computer readable storage medium may be, for example, but isnot limited to, an electronic storage device, a magnetic storage device,an optical storage device, an electromagnetic storage device, asemiconductor storage device, or any suitable combination of theforegoing. A non-exhaustive list of more specific examples of thecomputer readable storage medium includes the following: a portablecomputer diskette, a hard disk, a random access memory (RAM), aread-only memory (ROM), an erasable programmable read-only memory (EPROMor Flash memory), a static random access memory (SRAM), a portablecompact disc read-only memory (CD-ROM), a digital versatile disk (DVD),a memory stick, a floppy disk, a mechanically encoded device such aspunch-cards or raised structures in a groove having instructionsrecorded thereon, and any suitable combination of the foregoing. Acomputer readable storage medium, as used herein, is not to be construedas being transitory signals per se, such as radio waves or other freelypropagating electromagnetic waves, electromagnetic waves propagatingthrough a waveguide or other transmission media (e.g., light pulsespassing through a fiber-optic cable), or electrical signals transmittedthrough a wire.

Computer readable program instructions described herein can bedownloaded to respective computing/processing devices from a computerreadable storage medium or to an external computer or external storagedevice via a network, for example, the Internet, a local area network, awide area network and/or a wireless network. The network may comprisecopper transmission cables, optical transmission fibers, wirelesstransmission, routers, firewalls, switches, gateway computers and/oredge servers. A network adapter card or network interface in eachcomputing/processing device receives computer readable programinstructions from the network and forwards the computer readable programinstructions for storage in a computer readable storage medium withinthe respective computing/processing device.

Computer readable program instructions for carrying out operations ofthe present invention may be assembler instructions,instruction-set-architecture (ISA) instructions, machine instructions,machine dependent instructions, microcode, firmware instructions,state-setting data, configuration data for integrated circuitry, oreither source code or object code written in any combination of one ormore programming languages, including an object oriented programminglanguage such as Smalltalk, C++, or the like, and procedural programminglanguages, such as the “C” programming language or similar programminglanguages. The computer readable program instructions may executeentirely on the user's computer, partly on the user's computer, as astand-alone software package, partly on the user's computer and partlyon a remote computer or entirely on the remote computer or server. Inthe latter scenario, the remote computer may be connected to the user'scomputer through any type of network, including a local area network(LAN) or a wide area network (WAN), or the connection may be made to anexternal computer (for example, through the Internet using an InternetService Provider). In some embodiments, electronic circuitry including,for example, programmable logic circuitry, field-programmable gatearrays (FPGA), or programmable logic arrays (PLA) may execute thecomputer readable program instruction by utilizing state information ofthe computer readable program instructions to personalize the electroniccircuitry, in order to perform aspects of the present invention.

Aspects of the present invention are described herein with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems), and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer readable program instructions.

These computer readable program instructions may be provided to aprocessor of a general purpose computer, special purpose computer, orother programmable data processing apparatus to produce a machine, suchthat the instructions, which execute via the processor of the computeror other programmable data processing apparatus, create means forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks. These computer readable program instructionsmay also be stored in a computer readable storage medium that can directa computer, a programmable data processing apparatus, and/or otherdevices to function in a particular manner, such that the computerreadable storage medium having instructions stored therein comprises anarticle of manufacture including instructions which implement aspects ofthe function/act specified in the flowchart and/or block diagram blockor blocks.

The computer readable program instructions may also be loaded onto acomputer, other programmable data processing apparatus, or other deviceto cause a series of operational steps to be performed on the computer,other programmable apparatus or other device to produce a computerimplemented process, such that the instructions which execute on thecomputer, other programmable apparatus, or other device implement thefunctions/acts specified in the flowchart and/or block diagram block orblocks.

The flowchart and block diagrams in the Figures illustrate thearchitecture, functionality, and operation of possible implementationsof systems, methods, and computer program products according to variousembodiments of the present invention. In this regard, each block in theflowchart or block diagrams may represent a module, segment, or portionof instructions, which comprises one or more executable instructions forimplementing the specified logical function(s). In some alternativeimplementations, the functions noted in the blocks may occur out of theorder noted in the Figures. For example, two blocks shown in successionmay, in fact, be executed substantially concurrently, or the blocks maysometimes be executed in the reverse order, depending upon thefunctionality involved. It will also be noted that each block of theblock diagrams and/or flowchart illustration, and combinations of blocksin the block diagrams and/or flowchart illustration, can be implementedby special purpose hardware-based systems that perform the specifiedfunctions or acts or carry out combinations of special purpose hardwareand computer instructions.

The descriptions of the various embodiments of the present inventionhave been presented for purposes of illustration, but are not intendedto be exhaustive or limited to the embodiments disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art without departing from the scope and spirit of the describedembodiments. The terminology used herein was chosen to best explain theprinciples of the embodiments, the practical application or technicalimprovement over technologies found in the marketplace, or to enableothers of ordinary skill in the art to understand the embodimentsdescribed herein.

What is claimed is:
 1. A computer-implemented method of implementing aneural network model configured to execute a first task comprisingdetermining a level of similarity between a first text segment and asecond text segment, the computer-implemented method comprising:receiving, using a processor, a query comprising the first text segment;wherein the first text segment comprises a first text segment (FTS)sequence comprising at least one FTS character grouped into at least oneFTS word; based at least in part on receiving the first text segment,retrieving, using the processor, the second text segment from adatabase; wherein the second text segment comprises a second textsegment (STS) sequence comprising at least one STS character groupedinto at least one STS word; converting, using the processor, the FTSsequence to a FTS sequence representation; converting, using theprocessor, the at least one FTS word to at least one FTS wordrepresentation; converting, using the processor, the STS sequence to aSTS sequence representation; converting, using the processor, the atleast one STS word to at least one STS word representation; extracting,using the processor, FTS sequence-level features from the FTS sequencerepresentation; extracting, using the processor, FTS word-level featuresfrom the at least one FTS word representation; extracting, using theprocessor, STS sequence-level features from the STS sequencerepresentation; extracting, using the processor, STS word-level featuresfrom the at least one STS word representation; and determining, usingthe processor, the level of similarity between the first text segmentand the second text segment by applying a similarity metric technique tothe FTS sequence-level features, the FTS word-level features, the STSsequence-level features, and the STS word-level features.
 2. Thecomputer-implemented method of claim 1, wherein: the STS sequencerepresentation comprises a semantic STS sequence representation; andconverting, using the processor, the STS sequence to the semantic STSsequence representation further comprises converting, using theprocessor, a first instance of the STS sequence to the semantic STSsequence representation.
 3. The computer-implemented method of claim 2further comprising: converting, using the processor, a second instanceof the STS sequence to a syntactic STS sequence representation; andextracting, using the processor, STS syntactic-level features from thesyntactic STS sequence representation.
 4. The computer-implementedmethod of claim 3, wherein applying the similarity metric techniquecomprises also applying the similarity metric technique to the STSsyntactic-level features.
 5. The computer-implemented method of claim 1,wherein: the first text segment comprises a segment of natural languagetext; the second text segment comprises a segment of program code; andthe level of similarity between the segment of natural language text andthe segment of program code comprises a measure of a likelihood that thenatural language text describes a function of the segment of programcode.
 6. The computer-implemented method of claim 1 further comprising:based at least in part on receiving the first text segment, retrieving,using the processor, a second instance of the second text segment fromthe database; and performing, using the processor, a second task on thesecond instance of the second text segment; wherein a result of thesecond task is a third text segment (TTS) representation of a third textsegment; and wherein applying the similarity metric technique comprisesalso applying the similarity metric technique to the TTS representation.7. The computer-implemented method of claim 6 further comprising: basedat least in part on receiving the first text segment, performing, usingthe processor, a third task on a second instance of the first textsegment; wherein a result of the third task is a fourth text segment(4TS) representation of a fourth text segment; and wherein applying thesimilarity metric technique comprises also applying the similaritymetric technique to the 4TS representation.
 8. The computer-implementedmethod of claim 7, wherein: the first text segment comprises a firstsegment of natural language text; the second text segment comprises afirst segment of program code; the third text segment comprises a secondsegment of natural language text; the fourth text segment comprise asecond segment of program code; the level of similarity between thefirst segment of natural language text and the first segment of programcode comprises a measure of a likelihood that the first segment of thenatural language text describes a function of the first segment ofprogram code; the second task comprises translating the second instanceof the first segment of program code to the second segment of naturallanguage text; and the third task comprises translating the secondinstance of the first segment of natural language text to the secondsegment of program code.
 9. A system comprising a memory communicativelycoupled to a processor that implements a neural network model configuredto execute a first task comprising determining a level of similaritybetween a first text segment and a second text segment, the processorconfigured to execute operations comprising: receiving a querycomprising the first text segment; wherein the first text segmentcomprises a first text segment (FTS) sequence comprising at least oneFTS character grouped into at least one FTS word; based at least in parton receiving the first text segment, retrieving the second text segmentfrom a database; wherein the second text segment comprises a second textsegment (STS) sequence comprising at least one STS character groupedinto at least one STS word; converting the FTS sequence to a FTSsequence representation; converting the at least one FTS word to atleast one FTS word representation; converting the STS sequence to a STSsequence representation; converting the at least one STS word to atleast one STS word representation; extracting FTS sequence-levelfeatures from the FTS sequence representation; extracting FTS word-levelfeatures from the at least one FTS word representation; extracting STSsequence-level features from the STS sequence representation; extractingSTS word-level features from the at least one STS word representation;and determining the level of similarity between the first text segmentand the second text segment by applying a similarity metric technique tothe FTS sequence-level features, the FTS word-level features, the STSsequence-level features, and the STS word-level features.
 10. The systemof claim 9, wherein: the STS sequence representation comprises asemantic STS sequence representation; and converting the STS sequence tothe semantic STS sequence representation further comprises converting afirst instance of the STS sequence to the semantic STS sequencerepresentation.
 11. The system of claim 10 further comprising:converting a second instance of the STS sequence to a syntactic STSsequence representation; and extracting STS syntactic-level featuresfrom the syntactic STS sequence representation.
 12. The system of claim11, wherein applying the similarity metric technique comprises alsoapplying the similarity metric technique to the STS syntactic-levelfeatures.
 13. The system of claim 9, wherein: the first text segmentcomprises a segment of natural language text; the second text segmentcomprises a segment of program code; and the level of similarity betweenthe segment of natural language text and the segment of program codecomprises a measure of a likelihood that the natural language textdescribes a function of the segment of program code.
 14. The system ofclaim 9 further comprising: based at least in part on receiving thefirst text segment, retrieving a second instance of the second textsegment from the database; and performing a second task on the secondinstance of the second text segment; wherein a result of the second taskis a third text segment (TTS) representation of a third text segment;and wherein applying the similarity metric technique comprises alsoapplying the similarity metric technique to the TTS representation. 15.The system of claim 14 further comprising: based at least in part onreceiving the first text segment, performing a third task on a secondinstance of the first text segment; wherein a result of the third taskis a fourth text segment (4TS) representation of a fourth text segment;and wherein applying the similarity metric technique comprises alsoapplying the similarity metric technique to the 4TS representation. 16.The system of claim 15, wherein: the first text segment comprises afirst segment of natural language text; the second text segmentcomprises a first segment of program code; the third text segmentcomprises a second segment of natural language text; the fourth textsegment comprise a second segment of program code; the level ofsimilarity between the first segment of natural language text and thefirst segment of program code comprises a measure of a likelihood thatthe first segment of the natural language text describes a function ofthe first segment of program code; the second task comprises translatingthe second instance of the first segment of program code to the secondsegment of natural language text; and the third stack comprisestranslating the second instance of the first segment of natural languagetext to the second segment of program code.
 17. A computer programproduct for implementing a neural network model configured to execute afirst task comprising determining a level of similarity between a firsttext segment and a second text segment, the computer program productcomprising a computer readable storage medium having programinstructions embodied therewith, the program instructions executable bya processor system to cause the processor system to perform operationscomprising: receiving a query comprising the first text segment; whereinthe first text segment comprises a first text segment (FTS) sequencecomprising at least one FTS character grouped into at least one FTSword; based at least in part on receiving the first text segment,retrieving the second text segment from a database; wherein the secondtext segment comprises a second text segment (STS) sequence comprisingat least one STS character grouped into at least one STS word;converting the FTS sequence to a FTS sequence representation; convertingthe at least one FTS word to at least one FTS word representation;converting the STS sequence to a STS sequence representation; convertingthe at least one STS word to at least one STS word representation;extracting FTS sequence-level features from the FTS sequencerepresentation; extracting FTS word-level features from the at least oneFTS word representation; extracting STS sequence-level features from theSTS sequence representation; extracting STS word-level features from theat least one STS word representation; and determining the level ofsimilarity between the first text segment and the second text segment byapplying a similarity metric technique to the FTS sequence-levelfeatures, the FTS word-level features, the STS sequence-level features,and the STS word-level features.
 18. The computer program product ofclaim 17, wherein: the STS sequence representation comprises a semanticSTS sequence representation; converting the STS sequence to the semanticSTS sequence representation further comprises converting a firstinstance of the STS sequence to the semantic STS sequencerepresentation; the operations performed by the processor system furthercomprise: converting a second instance of the STS sequence to asyntactic STS sequence representation; and extracting STSsyntactic-level features from the syntactic STS sequence representation;and applying the similarity metric technique comprises also applying thesimilarity metric technique to the STS syntactic-level features.
 19. Thecomputer program product of claim 17, wherein: the first text segmentcomprises a segment of natural language text; the second text segmentcomprises a segment of program code; and the level of similarity betweenthe segment of natural language text and the segment of program codecomprises a measure of a likelihood that the natural language textdescribes a function of the segment of program code.
 20. The computerprogram product of claim 17, wherein the operations performed by theprocessor system further comprise: based at least in part on receivingthe first text segment, retrieving a second instance of the second textsegment from the database; performing a second task on the secondinstance of the second text segment; wherein a result of the second taskis a third text segment (TTS) representation of a third text segment;wherein applying the similarity metric technique comprises also applyingthe similarity metric technique to the TTS representation; and based atleast in part on receiving the first text segment, performing a thirdtask on a second instance of the first text segment; wherein a result ofthe third task is a fourth text segment (4TS) representation of a fourthtext segment; wherein applying the similarity metric technique comprisesalso applying the similarity metric technique to the 4TS representation;wherein the first text segment comprises a first segment of naturallanguage text; wherein the second text segment comprises a first segmentof program code; wherein the third text segment comprises a secondsegment of natural language text; wherein the fourth text segmentcomprise a second segment of program code; wherein the level ofsimilarity between the first segment of natural language text and thefirst segment of program code comprises a measure of a likelihood thatthe first segment of the natural language text describes a function ofthe first segment of program code; wherein the second task comprisestranslating the second instance of the first segment of program code tothe second segment of natural language text; and wherein the third stackcomprises translating the second instance of the first segment ofnatural language text to the second segment of program code.